[package]
edition = "2021"
rust-version = "1.85"
name = "eggress-cli"
version = "1.0.3"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "CLI binary for the eggress multi-protocol proxy"
readme = "README.md"
keywords = [
"proxy",
"cli",
"pproxy",
"command-line",
]
categories = [
"network-programming",
"command-line-utilities",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/eggstack/eggress"
[features]
common = ["eggress-runtime/common"]
default = ["full"]
extended = ["eggress-runtime/extended"]
full = [
"common",
"extended",
"operations",
"reverse",
"pproxy-compat",
]
insecure-quic = [
"eggress-runtime/insecure-quic",
"eggress-transport-quic/insecure-quic",
]
legacy-crypto = [
"eggress-runtime/legacy-crypto",
"eggress-pproxy-compat/legacy-crypto",
]
operations = [
"dep:eggress-system-proxy",
"eggress-runtime/operations",
]
pproxy-compat = ["dep:eggress-pproxy-compat"]
pproxy-daemon = [
"pproxy-compat",
"eggress-pproxy-compat/daemon",
]
pproxy-legacy = ["eggress-runtime/pproxy-legacy"]
quic = [
"eggress-config/quic",
"eggress-runtime/quic",
"eggress-pproxy-compat/quic",
"dep:eggress-transport-quic",
"dep:eggress-protocol-h3",
]
reverse = ["eggress-runtime/reverse"]
ssh = [
"eggress-runtime/ssh",
"eggress-pproxy-compat/ssh",
]
[lib]
name = "eggress_cli"
path = "src/lib.rs"
[[bin]]
name = "eggress"
path = "src/main.rs"
[[bin]]
name = "pproxy"
path = "src/pproxy_main.rs"
required-features = ["pproxy-compat"]
[[test]]
name = "advanced_transport_interop"
path = "tests/advanced_transport_interop.rs"
[[test]]
name = "cli_exit_codes"
path = "tests/cli_exit_codes.rs"
[[test]]
name = "cli_tests"
path = "tests/cli_tests.rs"
[[test]]
name = "differential_pproxy"
path = "tests/differential_pproxy.rs"
[[test]]
name = "feature_boundary_negative"
path = "tests/feature_boundary_negative.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "interoperability_curl"
path = "tests/interoperability_curl.rs"
[[test]]
name = "interoperability_pproxy"
path = "tests/interoperability_pproxy.rs"
[[test]]
name = "interoperability_shadowsocks"
path = "tests/interoperability_shadowsocks.rs"
[[test]]
name = "interoperability_trojan"
path = "tests/interoperability_trojan.rs"
[[test]]
name = "oracle"
path = "tests/oracle.rs"
[[test]]
name = "pproxy_binary"
path = "tests/pproxy_binary.rs"
[[test]]
name = "pproxy_cli"
path = "tests/pproxy_cli.rs"
[[test]]
name = "pproxy_differential"
path = "tests/pproxy_differential.rs"
[[test]]
name = "pproxy_run_process"
path = "tests/pproxy_run_process.rs"
[[test]]
name = "pproxy_translation_golden"
path = "tests/pproxy_translation_golden.rs"
[[test]]
name = "reply_order"
path = "tests/reply_order.rs"
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.eggress-config]
version = "=1.0.3"
[dependencies.eggress-core]
version = "=1.0.3"
[dependencies.eggress-metrics]
version = "=1.0.3"
default-features = false
[dependencies.eggress-pproxy-compat]
version = "=1.0.3"
optional = true
[dependencies.eggress-protocol-h3]
version = "=1.0.3"
optional = true
default-features = false
[dependencies.eggress-protocol-http]
version = "=1.0.3"
[dependencies.eggress-protocol-socks]
version = "=1.0.3"
[dependencies.eggress-routing]
version = "=1.0.3"
[dependencies.eggress-runtime]
version = "=1.0.3"
default-features = false
[dependencies.eggress-server]
version = "=1.0.3"
default-features = false
[dependencies.eggress-system-proxy]
version = "=1.0.3"
optional = true
[dependencies.eggress-transport-quic]
version = "=1.0.3"
optional = true
default-features = false
[dependencies.eggress-uri]
version = "=1.0.3"
[dependencies.http]
version = "1"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.tokio]
version = "1"
features = [
"rt",
"rt-multi-thread",
"macros",
"net",
"io-util",
"sync",
"time",
"signal",
"fs",
]
[dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
[dev-dependencies.assert_cmd]
version = "2"
[dev-dependencies.base64]
version = "0.22"
[dev-dependencies.eggress-protocol-http]
version = "=1.0.3"
[dev-dependencies.eggress-protocol-shadowsocks]
version = "=1.0.3"
[dev-dependencies.eggress-protocol-socks]
version = "=1.0.3"
[dev-dependencies.eggress-protocol-trojan]
version = "=1.0.3"
[dev-dependencies.eggress-routing]
version = "=1.0.3"
[dev-dependencies.eggress-testkit]
version = "=1.0.3"
[dev-dependencies.eggress-transport-tls]
version = "=1.0.3"
features = ["insecure-tls"]
[dev-dependencies.eggress-udp]
version = "=1.0.3"
default-features = false
[dev-dependencies.predicates]
version = "3"
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.rcgen]
version = "0.13"
[dev-dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
"tls12",
]
default-features = false
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio-rustls]
version = "0.26"
features = ["tls12"]
default-features = false
[dev-dependencies.toml]
version = "0.8"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "deny"