[package]
edition = "2024"
rust-version = "1.91"
name = "shadowsocks-rust"
version = "1.25.0"
authors = ["Shadowsocks Contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "shadowsocks is a fast tunnel proxy that helps you bypass firewalls."
documentation = "https://docs.rs/shadowsocks-rust"
readme = "README.md"
keywords = [
"shadowsocks",
"proxy",
"socks",
"socks5",
"firewall",
]
license = "MIT"
repository = "https://github.com/shadowsocks/shadowsocks-rust"
[badges.maintenance]
status = "passively-maintained"
[features]
aead-cipher = ["shadowsocks-service/aead-cipher"]
aead-cipher-2022 = ["shadowsocks-service/aead-cipher-2022"]
aead-cipher-2022-extra = ["shadowsocks-service/aead-cipher-2022-extra"]
aead-cipher-extra = [
"aead-cipher",
"shadowsocks-service/aead-cipher-extra",
]
basic = [
"logging",
"hickory-dns",
"local",
"server",
"multi-threaded",
"aead-cipher",
]
default = ["full"]
dns-over-h3 = ["shadowsocks-service/dns-over-h3"]
dns-over-https = ["shadowsocks-service/dns-over-https"]
dns-over-tls = ["shadowsocks-service/dns-over-tls"]
full = [
"logging",
"hickory-dns",
"dns-over-tls",
"dns-over-https",
"local",
"server",
"manager",
"utility",
"service",
"local-http",
"local-http-rustls",
"local-tunnel",
"local-socks4",
"local-dns",
"local-redir",
"local-tun",
"local-online-config",
"multi-threaded",
"stream-cipher",
"aead-cipher",
"aead-cipher-2022",
]
full-extra = [
"full",
"dns-over-h3",
"local-fake-dns",
"aead-cipher-extra",
"aead-cipher-2022-extra",
"security-replay-attack-detect",
]
hickory-dns = ["shadowsocks-service/hickory-dns"]
jemalloc = ["jemallocator"]
local = ["shadowsocks-service/local"]
local-dns = [
"local",
"shadowsocks-service/local-dns",
]
local-fake-dns = [
"local",
"shadowsocks-service/local-fake-dns",
"ipnet",
]
local-flow-stat = [
"local",
"shadowsocks-service/local-flow-stat",
]
local-http = [
"local",
"shadowsocks-service/local-http",
]
local-http-native-tls = [
"local-http",
"shadowsocks-service/local-http-native-tls",
]
local-http-native-tls-vendored = [
"local-http",
"shadowsocks-service/local-http-native-tls-vendored",
]
local-http-rustls = [
"local-http",
"shadowsocks-service/local-http-rustls",
]
local-online-config = [
"local",
"shadowsocks-service/local-online-config",
]
local-redir = [
"local",
"shadowsocks-service/local-redir",
]
local-socks4 = [
"local",
"shadowsocks-service/local-socks4",
]
local-tun = [
"local",
"shadowsocks-service/local-tun",
"ipnet",
]
local-tunnel = [
"local",
"shadowsocks-service/local-tunnel",
]
logging = [
"log4rs",
"tracing",
"tracing-subscriber",
"time",
"tracing-appender",
"tracing-syslog",
]
manager = ["shadowsocks-service/manager"]
multi-threaded = ["tokio/rt-multi-thread"]
replay-attack-detect = ["security-replay-attack-detect"]
security-replay-attack-detect = ["shadowsocks-service/security-replay-attack-detect"]
server = ["shadowsocks-service/server"]
service = [
"local",
"server",
"manager",
]
snmalloc = ["snmalloc-rs"]
stream-cipher = ["shadowsocks-service/stream-cipher"]
tcmalloc-vendored = ["tcmalloc/bundled"]
tracing-syslog = ["dep:syslog-tracing"]
trust-dns = ["hickory-dns"]
utility = ["qrcode"]
utility-url-outline = ["reqwest"]
winservice = [
"service",
"windows-service",
]
[lib]
name = "shadowsocks_rust"
path = "src/lib.rs"
[[bin]]
name = "sslocal"
path = "bin/sslocal.rs"
required-features = ["local"]
[[bin]]
name = "ssmanager"
path = "bin/ssmanager.rs"
required-features = ["manager"]
[[bin]]
name = "ssserver"
path = "bin/ssserver.rs"
required-features = ["server"]
[[bin]]
name = "ssservice"
path = "bin/ssservice.rs"
required-features = ["service"]
[[bin]]
name = "ssurl"
path = "bin/ssurl.rs"
required-features = ["utility"]
[[bin]]
name = "sswinservice"
path = "bin/sswinservice.rs"
required-features = ["winservice"]
[[test]]
name = "dns"
path = "tests/dns.rs"
[[test]]
name = "http"
path = "tests/http.rs"
[[test]]
name = "socks4"
path = "tests/socks4.rs"
[[test]]
name = "socks5"
path = "tests/socks5.rs"
[[test]]
name = "tunnel"
path = "tests/tunnel.rs"
[[test]]
name = "udp"
path = "tests/udp.rs"
[dependencies.base64]
version = "0.23"
[dependencies.build-time]
version = "0.1"
[dependencies.cfg-if]
version = "1"
[dependencies.clap]
version = "4.5"
features = [
"wrap_help",
"suggestions",
]
[dependencies.directories]
version = "6.0"
[dependencies.futures]
version = "0.3"
[dependencies.ipnet]
version = "2.10"
optional = true
[dependencies.jemallocator]
version = "0.5"
optional = true
[dependencies.json5]
version = "1.3"
[dependencies.libc]
version = "0.2"
features = ["extra_traits"]
[dependencies.log]
version = "0.4"
[dependencies.log4rs]
version = "1.2"
optional = true
[dependencies.mimalloc]
version = "0.1"
optional = true
default-features = false
[dependencies.qrcode]
version = "0.14"
optional = true
default-features = false
[dependencies.rand]
version = "0.10"
[dependencies.reqwest]
version = "0.13"
features = ["blocking"]
optional = true
[dependencies.rpassword]
version = "7.3"
[dependencies.rpmalloc]
version = "0.2"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.shadowsocks-service]
version = "1.25.0"
default-features = false
[dependencies.snmalloc-rs]
version = "0.7"
optional = true
[dependencies.sysexits]
version = "0.13"
[dependencies.syslog-tracing]
version = "0.3"
optional = true
[dependencies.tcmalloc]
version = "0.3"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.time]
version = "0.3"
optional = true
[dependencies.tokio]
version = "1"
features = [
"rt",
"signal",
]
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-appender]
version = "0.2.3"
optional = true
default-features = false
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"std",
"fmt",
"env-filter",
"time",
"local-time",
]
optional = true
[dependencies.windows-service]
version = "0.8"
optional = true
[dev-dependencies.byte_string]
version = "1.0"
[dev-dependencies.byteorder]
version = "1.5"
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.tokio]
version = "1"
features = [
"net",
"time",
"macros",
"io-util",
]
[target."cfg(unix)".dependencies.xdg]
version = "3.0"
[lints.clippy]
uninlined_format_args = "allow"
[profile.release]
lto = "fat"
codegen-units = 1
panic = "abort"
incremental = false
strip = true