[package]
name = "eggress-runtime"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "Service supervisor and composition layer for eggress"
keywords = ["proxy", "runtime", "supervisor", "lifecycle"]
categories = ["network-programming", "asynchronous"]
readme = "README.md"
[features]
default = ["full"]
full = ["common", "extended", "operations", "reverse"]
common = ["eggress-server/common"]
extended = [
"dep:eggress-protocol-shadowsocks",
"eggress-server/extended",
"eggress-metrics/extended",
"eggress-udp/shadowsocks",
]
pproxy-legacy = ["extended", "eggress-server/pproxy-legacy", "eggress-protocol-shadowsocks/pproxy-legacy"]
legacy-crypto = ["extended", "eggress-server/legacy-crypto", "eggress-protocol-shadowsocks/legacy-crypto"]
operations = [
"dep:eggress-admin",
"dep:eggress-system-proxy",
]
reverse = ["dep:eggress-protocol-reverse", "operations"]
ssh = ["eggress-server/ssh", "dep:eggress-transport-ssh"]
quic = ["eggress-config/quic", "eggress-server/quic", "dep:eggress-transport-quic", "dep:eggress-protocol-h3"]
insecure-quic = ["eggress-server/insecure-quic", "eggress-transport-quic/insecure-quic"]
[dependencies]
eggress-core.workspace = true
eggress-config.workspace = true
eggress-routing.workspace = true
eggress-server.workspace = true
eggress-protocol-http.workspace = true
eggress-admin = { workspace = true, optional = true }
eggress-metrics.workspace = true
eggress-uri.workspace = true
eggress-udp.workspace = true
eggress-transport-tls.workspace = true
eggress-transport-ssh = { workspace = true, optional = true }
eggress-transport-quic = { workspace = true, optional = true }
eggress-protocol-h3 = { workspace = true, optional = true }
eggress-protocol-shadowsocks = { workspace = true, optional = true }
eggress-protocol-reverse = { workspace = true, optional = true }
eggress-system-proxy = { workspace = true, optional = true }
rustls.workspace = true
tokio.workspace = true
tokio-util.workspace = true
tracing.workspace = true
thiserror.workspace = true
arc-swap.workspace = true
fastrand.workspace = true
[dev-dependencies]
tempfile.workspace = true
serde_json.workspace = true
tokio.workspace = true
tokio-util.workspace = true
tokio-rustls.workspace = true
eggress-admin.workspace = true
eggress-routing.workspace = true
eggress-core.workspace = true
eggress-uri.workspace = true
eggress-testkit.workspace = true
rcgen = "0.13"
eggress-transport-tls = { workspace = true, features = ["insecure-tls"] }
eggress-protocol-trojan.workspace = true
eggress-protocol-shadowsocks.workspace = true
eggress-protocol-websocket.workspace = true
eggress-protocol-http.workspace = true
h2.workspace = true
http.workspace = true
bytes.workspace = true
tokio-tungstenite.workspace = true
futures-util.workspace = true
[lints]
workspace = true