[package]
name = "osproxy-server"
description = "The osproxy binary: process lifecycle and wiring. No business logic."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
[[bin]]
name = "osproxy"
path = "src/main.rs"
[features]
default = ["non-fips"]
non-fips = ["osproxy-transport/non-fips", "dep:ring", "osproxy-kafka-krafka?/non-fips"]
fips = ["osproxy-transport/fips", "dep:aws-lc-rs", "osproxy-kafka-krafka?/fips"]
capture = ["dep:osproxy-kafka", "dep:osproxy-kafka-krafka", "dep:osproxy-kafka-wal"]
fanout = ["dep:osproxy-kafka", "dep:osproxy-kafka-krafka"]
kafka = ["capture", "fanout"]
etcd = ["dep:osproxy-etcd"]
[dependencies]
osproxy-core.workspace = true
osproxy-capture.workspace = true
osproxy-config.workspace = true
osproxy-engine.workspace = true
osproxy-observe.workspace = true
osproxy-transport = { workspace = true, default-features = false }
osproxy-otlp.workspace = true
osproxy-etcd = { workspace = true, optional = true }
osproxy-spi.workspace = true
osproxy-tenancy.workspace = true
osproxy-sink.workspace = true
osproxy-kafka = { workspace = true, optional = true }
osproxy-kafka-krafka = { workspace = true, optional = true }
osproxy-kafka-wal = { workspace = true, optional = true }
serde_json.workspace = true
prost.workspace = true
ciborium.workspace = true
mimalloc.workspace = true
ring = { workspace = true, optional = true }
aws-lc-rs = { workspace = true, optional = true }
tokio = { workspace = true, features = ["rt-multi-thread", "macros", "net", "signal", "time"] }
[build-dependencies]
tonic-prost-build.workspace = true
[dev-dependencies]
hyper = { workspace = true, features = ["server", "client", "http1"] }
hyper-util = { workspace = true, features = ["server", "service", "client", "client-legacy", "http1", "tokio"] }
http-body-util.workspace = true
bytes.workspace = true
serde_json.workspace = true
testcontainers.workspace = true
testcontainers-modules = { workspace = true, features = ["kafka"] }
krafka = { workspace = true, features = ["ring"] }
osproxy-bench.workspace = true
[lints]
workspace = true