[package] name = "bulwark-cli" description = "Bulwark is a fast, modern, open-source web application security engine." version.workspace = true edition.workspace = true license = "Apache-2.0 WITH LLVM-exception" homepage = "https://bulwark.security/" repository = "https://github.com/bulwark-security/bulwark" readme = "README.md" keywords = ["bulwark", "security", "fraud", "detection", "webassembly"] categories = ["wasm"] [badges] maintenance = { status = "experimental" } [dependencies] bulwark-config = { workspace = true } bulwark-build = { workspace = true } bulwark-ext-processor = { workspace = true } axum = { workspace = true } chrono = { workspace = true } http = { workspace = true } metrics = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true } toml = { workspace = true } tonic = { workspace = true } tracing = { workspace = true } clap = { version = "4.4.3", features = ["derive"] } clap_complete = "4.5.2" color-eyre = "0.6.2" hyper = { version = "1.2.0", features = ["server"] } metrics-exporter-prometheus = "0.15.0" metrics-exporter-statsd = "0.6.0" quoted-string = "0.6.1" tower = { version = "0.4.13", features = ["tokio", "tracing"] } tower-http = { version = "0.5.0", features = [ "tokio", "trace", "tracing", "normalize-path", ] } tower-layer = "0.3.2" tracing-appender = "0.2.2" tracing-core = "0.1.31" tracing-forest = { version = "0.1.5", features = ["tokio", "chrono", "uuid"] } tracing-log = "0.2.0" tracing-opentelemetry = "0.23.0" tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } [dev-dependencies] bulwark-host = { workspace = true } bulwark-sdk = { workspace = true } anyhow = { workspace = true } deadpool-redis = { workspace = true } bytes = { workspace = true } reqwest = { workspace = true } approx = { workspace = true } tokio-test = { workspace = true } [build-dependencies] reqwest = { workspace = true } clap_mangen = "0.2.5" [workspace] members = [ "crates/build", "crates/config", "crates/ext-processor", "crates/host", "crates/sdk", "crates/sdk-macros", "crates/decision", ] exclude = ["crates/sdk/examples", "tests/plugins"] [workspace.package] version = "0.6.0" edition = "2021" # This should be no larger than the current stable release of Rust minus 2. rust-version = "1.73.0" [workspace.dependencies] # Internal dependencies bulwark-build = { path = "crates/build", version = "=0.6.0" } bulwark-config = { path = "crates/config", version = "=0.6.0" } bulwark-decision = { path = "crates/decision", version = "=0.6.0" } bulwark-ext-processor = { path = "crates/ext-processor", version = "=0.6.0" } bulwark-host = { path = "crates/host", version = "=0.6.0" } bulwark-sdk = { path = "crates/sdk", version = "=0.6.0" } bulwark-sdk-macros = { path = "crates/sdk-macros", version = "=0.6.0" } # WASM dependencies wasi-common = { version = "22" } wasmtime = { version = "22.0.0", features = ["component-model"] } wasmtime-types = { version = "22" } wasmtime-wasi = { version = "22" } wasmtime-wasi-http = { version = "22" } wat = "1.211.1" wit-bindgen = "0.26.0" wit-component = "0.211.1" # Other shared external dependencies anyhow = "=1.0.72" approx = "0.5" async-trait = "0.1.74" axum = { version = "0.7.5", features = ["http2"] } bytes = "1.5" chrono = { version = "0.4.26", features = ["serde"] } deadpool-redis = "0.15.0" forwarded-header-value = "0.1.1" futures = "0.3" hex = "0.4.3" http = "1.0" matchit = "0.8.2" metrics = "0.21.1" owo-colors = "3.5.0" redis = { version = "0.25", features = [ "tokio-comp", "tokio-rustls-comp", # Self-signed connections are common for self-hosted instances. "tls-rustls-insecure", "cluster", ] } redis-test = "0.4" reqwest = { version = "0.12.5", features = ["rustls-tls", "blocking"] } serde = { version = "1.0.149", features = ["std", "serde_derive", "derive"] } serde_json = "1.0.93" sha2 = "0.10.8" thiserror = "=1.0.43" tokio = { version = "1", features = [ "rt-multi-thread", "macros", "tracing", "time", ] } tokio-test = "0.4.2" toml = { version = "0.8.6", features = ["preserve_order"] } tonic = "^0.9" tracing = "0.1.40" url = "2.5.0" validator = { version = "0.16", features = ["derive"] } [profile.test] opt-level = 2 codegen-units = 8