bulwark-cli 0.5.0

Bulwark is a fast, modern, open-source web application security engine.
[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 }

chrono = { workspace = true }
envoy-control-plane = { 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 }

axum = { version = "0.7.0", features = ["http2"] }
clap = { version = "4.4.3", features = ["derive"] }
clap_complete = "4.4.1"
color-eyre = "0.6.2"
hyper = { version = "1.2.0", features = ["server"] }
metrics-exporter-prometheus = "0.12.1"
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-futures = { version = "0.2.5", features = ["tokio"] }
tracing-log = "0.2.0"
tracing-opentelemetry = "0.22.0"
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }

[dev-dependencies]
bulwark-host = { workspace = true }
bulwark-sdk = { workspace = true }

anyhow = { workspace = true }
bb8-redis = { workspace = true }
bytes = { workspace = true }
reqwest = { workspace = true }
approx = { workspace = true }

tokio-test = "0.4.2"

[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"]

[workspace.package]
version = "0.5.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.5.0" }
bulwark-config = { path = "crates/config", version = "=0.5.0" }
bulwark-decision = { path = "crates/decision", version = "=0.5.0" }
bulwark-ext-processor = { path = "crates/ext-processor", version = "=0.5.0" }
bulwark-host = { path = "crates/host", version = "=0.5.0" }
bulwark-sdk = { path = "crates/sdk", version = "=0.5.0" }
bulwark-sdk-macros = { path = "crates/sdk-macros", version = "=0.5.0" }

# WASM dependencies
wasi-common = { version = "19" }
wasmtime = { version = "19.0.1", features = ["component-model"] }
wasmtime-types = { version = "19" }
wasmtime-wasi = { version = "19" }
wasmtime-wasi-http = { version = "19" }
wat = "1.202.0"
wit-bindgen = "0.24.0"
wit-component = "0.202.0"

# Other shared external dependencies
anyhow = "=1.0.72"
approx = "0.5"
bytes = "1.5"
chrono = { version = "0.4.26", features = ["serde"] }
envoy-control-plane = { version = "0.4.0", features = ["grpc"] }
forwarded-header-value = "0.1.1"
futures = "0.3"
http = "1.0"
metrics = "0.21.1"
bb8-redis = "0.15.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.11.14", features = ["rustls-tls", "blocking"] }
serde = { version = "1.0.149", features = ["std", "serde_derive"] }
serde_json = "1.0.93"
thiserror = "=1.0.43"
tokio = { version = "1", features = [
    "rt-multi-thread",
    "macros",
    "tracing",
    "time",
] }
toml = { version = "0.8.6", features = ["preserve_order"] }
tonic = "0.6.2"
tracing = "0.1.37"
validator = { version = "0.16", features = ["derive"] }

[profile.test]
opt-level = 2
codegen-units = 8