[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"
rust-version = "1.73.0"
[workspace.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" }
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"
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",
"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