Files
shadowsocks-rust/crates/shadowsocks/Cargo.toml
2025-12-11 07:38:59 +08:00

117 lines
3.3 KiB
TOML

[package]
name = "shadowsocks"
version = "1.24.0"
authors = ["Shadowsocks Contributors"]
description = "shadowsocks is a fast tunnel proxy that helps you bypass firewalls."
repository = "https://github.com/shadowsocks/shadowsocks-rust"
readme = "README.md"
documentation = "https://docs.rs/shadowsocks-core"
keywords = ["shadowsocks", "proxy", "socks", "socks5", "firewall"]
license = "MIT"
edition = "2024"
rust-version = "1.88"
[badges]
maintenance = { status = "passively-maintained" }
[features]
default = ["hickory-dns", "aead-cipher"]
# Uses Hickory-DNS instead of tokio's builtin DNS resolver
hickory-dns = ["hickory-resolver", "arc-swap", "notify"]
# Hickory-DNS was renamed from Trust-DNS, keep compatibility.
trust-dns = ["hickory-dns"]
# Enable Stream Cipher Protocol
# WARN: Stream Cipher Protocol is proved to be insecure
# https://github.com/shadowsocks/shadowsocks-rust/issues/373
# Users should always avoid using these ciphers in practice
stream-cipher = ["shadowsocks-crypto/v1-stream", "shadowsocks-crypto/ring"]
# Enable AEAD ciphers
aead-cipher = ["shadowsocks-crypto/v1-aead", "shadowsocks-crypto/ring"]
# Enable extra AEAD ciphers
# WARN: These non-standard AEAD ciphers are not officially supported by shadowsocks community
aead-cipher-extra = ["aead-cipher", "shadowsocks-crypto/v1-aead-extra"]
aead-cipher-2022 = [
"shadowsocks-crypto/v2",
"shadowsocks-crypto/ring",
"rand/small_rng",
"aes",
"lru_time_cache",
] # Enable AEAD 2022
# Enable AEAD 2022 with extra ciphers
aead-cipher-2022-extra = ["aead-cipher-2022", "shadowsocks-crypto/v2-extra"]
# Enable detection against replay attack
security-replay-attack-detect = ["bloomfilter"]
[dependencies]
log = "0.4"
libc = "~0.2.141"
bytes = "1.7"
cfg-if = "1"
byte_string = "1.0"
base64 = "0.22"
url = "2.5"
spin = { version = "0.10", features = ["std"] }
pin-project = "1.1"
bloomfilter = { version = "3.0.0", optional = true }
thiserror = "2.0"
rand = { version = "0.9", optional = true }
lru_time_cache = { version = "0.11", optional = true }
serde = { version = "1.0", features = ["derive"] }
serde_urlencoded = "0.7"
serde_json = "1.0"
percent-encoding = "2.1"
futures = "0.3"
trait-variant = "0.1"
dynosaur = "0.3.0"
sealed = "0.6"
socket2 = { version = "0.6", features = ["all"] }
tokio = { version = "1.9.0", features = [
"io-util",
"macros",
"net",
"parking_lot",
"process",
"rt",
"sync",
"time",
] }
hickory-resolver = { version = "0.25", optional = true }
arc-swap = { version = "1.7", optional = true }
notify = { version = "8.0", optional = true }
aes = { version = "0.8", optional = true }
blake3 = "1.5"
shadowsocks-crypto = { version = "0.6.0", default-features = false }
[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 = "0.4"
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = [
"Win32_Foundation",
"Win32_NetworkManagement_IpHelper",
"Win32_NetworkManagement_Ndis",
"Win32_Networking_WinSock",
"Win32_System_IO",
] }
[target.'cfg(unix)'.dependencies]
sendfd = { version = "0.4", features = ["tokio"] }
[dev-dependencies]
env_logger = "0.11"
[lints.clippy]
uninlined_format_args = "allow"