[workspace] resolver = "2" members = [ "crates/rustproxy", "crates/rustproxy-config", "crates/rustproxy-routing", "crates/rustproxy-tls", "crates/rustproxy-passthrough", "crates/rustproxy-http", "crates/rustproxy-nftables", "crates/rustproxy-metrics", "crates/rustproxy-security", ] [workspace.package] version = "0.1.0" edition = "2021" license = "MIT" authors = ["Lossless GmbH "] [workspace.dependencies] # Async runtime tokio = { version = "1", features = ["full"] } # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1" # HTTP proxy engine (hyper-based) hyper = { version = "1", features = ["http1", "http2", "server", "client"] } hyper-util = { version = "0.1", features = ["tokio", "http1", "http2", "client-legacy", "server-auto"] } http-body = "1" http-body-util = "0.1" bytes = "1" # ACME / Let's Encrypt instant-acme = { version = "0.7", features = ["hyper-rustls"] } # TLS for passthrough SNI rustls = { version = "0.23", features = ["ring"] } tokio-rustls = "0.26" rustls-pemfile = "2" # Self-signed cert generation for tests rcgen = "0.13" # Temp directories for tests tempfile = "3" # Lock-free atomics arc-swap = "1" # Concurrent maps dashmap = "6" # Domain wildcard matching glob-match = "0.2" # IP/CIDR parsing ipnet = "2" # JWT authentication jsonwebtoken = "9" # Structured logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } # Error handling thiserror = "2" anyhow = "1" # CLI clap = { version = "4", features = ["derive"] } # Regex for URL rewriting regex = "1" # Base64 for basic auth base64 = "0.22" # Cancellation / utility tokio-util = "0.7" # Async traits async-trait = "0.1" # libc for uid checks libc = "0.2" # Internal crates rustproxy-config = { path = "crates/rustproxy-config" } rustproxy-routing = { path = "crates/rustproxy-routing" } rustproxy-tls = { path = "crates/rustproxy-tls" } rustproxy-passthrough = { path = "crates/rustproxy-passthrough" } rustproxy-http = { path = "crates/rustproxy-http" } rustproxy-nftables = { path = "crates/rustproxy-nftables" } rustproxy-metrics = { path = "crates/rustproxy-metrics" } rustproxy-security = { path = "crates/rustproxy-security" }