[package]
name = "nono-proxy"
version = "0.47.0"
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Network filtering proxy for the nono sandbox"
keywords = ["sandbox", "security", "proxy", "network"]
categories = ["network-programming", "web-programming"]

[features]
default = ["system-keyring"]
# Enables OS system keyring access (macOS Keychain / Linux Secret Service).
# Headless/container consumers opt out with default-features = false.
system-keyring = ["nono/system-keyring"]

[dependencies]
nono = { version = "0.47.0", path = "../nono", default-features = false }
tokio.workspace = true
hyper.workspace = true
hyper-util.workspace = true
http-body-util.workspace = true
thiserror.workspace = true
serde.workspace = true
serde_json.workspace = true
tracing.workspace = true
zeroize.workspace = true
sha2.workspace = true
getrandom = "0.4"
base64 = "0.22"
subtle = "2"
url = "2"
urlencoding = "2"
globset.workspace = true

# TLS for upstream connections (reverse proxy mode)
hyper-rustls = { version = "0.27", features = ["http1", "ring", "webpki-tokio"] }
tokio-rustls = "0.26"
rustls = { version = "0.23", features = ["ring"] }
webpki-roots = "1"

[dev-dependencies]
tempfile.workspace = true
tokio = { version = "1", features = ["test-util", "rt-multi-thread", "macros"] }
