[package]
edition = "2024"
rust-version = "1.91"
name = "shadowsocks"
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-core"
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-crypto/v1-aead",
"shadowsocks-crypto/aws-lc",
]
aead-cipher-2022 = [
"shadowsocks-crypto/v2",
"shadowsocks-crypto/aws-lc",
"rand",
"aes",
"lru_time_cache",
]
aead-cipher-2022-extra = [
"aead-cipher-2022",
"shadowsocks-crypto/v2-extra",
]
aead-cipher-extra = [
"aead-cipher",
"shadowsocks-crypto/v1-aead-extra",
]
default = [
"hickory-dns",
"aead-cipher",
]
hickory-dns = [
"hickory-resolver",
"arc-swap",
"notify",
]
security-replay-attack-detect = ["bloomfilter"]
stream-cipher = [
"shadowsocks-crypto/v1-stream",
"shadowsocks-crypto/aws-lc",
]
trust-dns = ["hickory-dns"]
[lib]
name = "shadowsocks"
path = "src/lib.rs"
[[test]]
name = "tcp"
path = "tests/tcp.rs"
[[test]]
name = "tcp_tfo"
path = "tests/tcp_tfo.rs"
[[test]]
name = "udp"
path = "tests/udp.rs"
[dependencies.aes]
version = "0.9"
optional = true
[dependencies.arc-swap]
version = "1.7"
optional = true
[dependencies.base64]
version = "0.23"
[dependencies.blake3]
version = "1.5"
[dependencies.bloomfilter]
version = "3.0.0"
optional = true
[dependencies.byte_string]
version = "1.0"
[dependencies.bytes]
version = "1.7"
[dependencies.cfg-if]
version = "1"
[dependencies.dynosaur]
version = "0.3.0"
[dependencies.futures]
version = "0.3"
[dependencies.hickory-resolver]
version = "0.26"
optional = true
[dependencies.libc]
version = "~0.2.141"
[dependencies.log]
version = "0.4"
[dependencies.lru_time_cache]
version = "0.11"
optional = true
[dependencies.notify]
version = "8.0"
optional = true
[dependencies.percent-encoding]
version = "2.1"
[dependencies.pin-project]
version = "1.1"
[dependencies.rand]
version = "0.10"
optional = true
[dependencies.sealed]
version = "0.7"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.shadowsocks-crypto]
version = "0.8.0"
default-features = false
[dependencies.socket2]
version = "0.6"
features = ["all"]
[dependencies.spin]
version = "0.12"
features = ["std"]
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.9.0"
features = [
"io-util",
"macros",
"net",
"parking_lot",
"process",
"rt",
"sync",
"time",
]
[dependencies.trait-variant]
version = "0.1"
[dependencies.url]
version = "2.5"
[dev-dependencies.env_logger]
version = "0.11"
[target.'cfg(any(windows, target_os = "linux", target_os = "android", target_os = "freebsd", target_os = "macos", target_os = "ios", target_os = "watchos", target_os = "tvos"))'.dependencies.tokio-tfo]
version = "0.4.3"
[target."cfg(unix)".dependencies.sendfd]
version = "0.4"
features = ["tokio"]
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61"
features = [
"Win32_Foundation",
"Win32_NetworkManagement_IpHelper",
"Win32_NetworkManagement_Ndis",
"Win32_Networking_WinSock",
"Win32_System_IO",
]
[lints.clippy]
uninlined_format_args = "allow"