shadowsocks-service 1.24.0

shadowsocks is a fast tunnel proxy that helps you bypass firewalls.
Documentation
[badges.maintenance]
status = "passively-maintained"

[dependencies.arc-swap]
version = "1.7"

[dependencies.brotli]
optional = true
version = "8.0"

[dependencies.bson]
features = ["serde"]
optional = true
version = "3.0.0"

[dependencies.byte_string]
version = "1.0"

[dependencies.byteorder]
version = "1.5"

[dependencies.bytes]
version = "1.7"

[dependencies.cfg-if]
version = "1"

[dependencies.etherparse]
optional = true
version = "0.19"

[dependencies.flate2]
optional = true
version = "1.0"

[dependencies.futures]
version = "0.3"

[dependencies.hickory-resolver]
features = ["serde"]
optional = true
version = "0.25"

[dependencies.http]
optional = true
version = "1.1"

[dependencies.http-body-util]
optional = true
version = "0.1"

[dependencies.httparse]
optional = true
version = "1.9"

[dependencies.hyper]
features = ["full"]
optional = true
version = "1.4"

[dependencies.idna]
version = "1.0"

[dependencies.ipnet]
version = "2.10"

[dependencies.iprange]
version = "0.6"

[dependencies.json5]
version = "1.3"

[dependencies.libc]
version = "~0.2.141"

[dependencies.log]
version = "0.4"

[dependencies.lru_time_cache]
version = "0.11"

[dependencies.mime]
optional = true
version = "0.3"

[dependencies.native-tls]
features = ["alpn"]
optional = true
version = "0.2.8"

[dependencies.pin-project]
version = "1.1"

[dependencies.rand]
features = ["small_rng"]
version = "0.9"

[dependencies.regex]
default-features = false
features = ["std", "perf"]
version = "1.4"

[dependencies.rocksdb]
optional = true
version = "0.24"

[dependencies.rustls-native-certs]
optional = true
version = "0.8"

[dependencies.serde]
features = ["derive"]
version = "1.0"

[dependencies.serde_json]
version = "1.0"

[dependencies.shadowsocks]
default-features = false
version = "1.24.0"

[dependencies.smoltcp]
default-features = false
features = ["std", "log", "medium-ip", "proto-ipv4", "proto-ipv4-fragmentation", "proto-ipv6", "socket-icmp", "socket-udp", "socket-tcp", "socket-tcp-cubic"]
optional = true
version = "0.12"

[dependencies.socket2]
features = ["all"]
version = "0.6"

[dependencies.spin]
version = "0.10"

[dependencies.thiserror]
version = "2.0"

[dependencies.tokio]
features = ["io-util", "macros", "net", "parking_lot", "rt", "sync", "time"]
version = "1.38"

[dependencies.tokio-native-tls]
optional = true
version = "0.3"

[dependencies.tokio-rustls]
default-features = false
features = ["logging", "tls12", "ring"]
optional = true
version = "0.26"

[dependencies.trait-variant]
version = "0.1"

[dependencies.webpki-roots]
optional = true
version = "1.0"

[dependencies.zstd]
optional = true
version = "0.13"

[dev-dependencies.byteorder]
version = "1.5"

[dev-dependencies.env_logger]
version = "0.11"

[features]
aead-cipher = ["shadowsocks/aead-cipher"]
aead-cipher-2022 = ["shadowsocks/aead-cipher-2022"]
aead-cipher-2022-extra = ["aead-cipher-2022", "shadowsocks/aead-cipher-2022-extra"]
aead-cipher-extra = ["aead-cipher", "shadowsocks/aead-cipher-extra"]
default = ["hickory-dns", "aead-cipher"]
dns-over-h3 = ["hickory-dns", "hickory-resolver/h3-ring"]
dns-over-https = ["hickory-dns", "hickory-resolver/https-ring", "hickory-resolver/webpki-roots"]
dns-over-tls = ["hickory-dns", "hickory-resolver/tls-ring", "hickory-resolver/webpki-roots"]
full = ["local", "server", "manager", "hickory-dns", "local-http", "local-redir", "local-tunnel", "local-socks4", "aead-cipher"]
hickory-dns = ["hickory-resolver", "shadowsocks/trust-dns"]
local = ["httparse"]
local-dns = ["local", "hickory-dns"]
local-dns-relay = ["local-dns"]
local-fake-dns = ["local", "trust-dns", "rocksdb", "bson"]
local-flow-stat = ["local"]
local-http = ["local", "hyper", "http", "http-body-util"]
local-http-native-tls = ["local-http", "tokio-native-tls", "native-tls"]
local-http-native-tls-vendored = ["local-http-native-tls", "tokio-native-tls/vendored", "native-tls/vendored"]
local-http-rustls = ["local-http", "tokio-rustls", "webpki-roots", "rustls-native-certs"]
local-online-config = ["local", "local-http", "mime", "http", "flate2", "brotli", "zstd"]
local-redir = ["local"]
local-socks4 = ["local"]
local-tun = ["local", "etherparse", "tun", "smoltcp"]
local-tunnel = ["local"]
manager = ["server"]
security-replay-attack-detect = ["shadowsocks/security-replay-attack-detect"]
server = []
stream-cipher = ["shadowsocks/stream-cipher"]
trust-dns = ["hickory-dns"]

[lib]
name = "shadowsocks_service"
path = "src/lib.rs"

[lints.clippy]
uninlined_format_args = "allow"

[package]
authors = ["Shadowsocks Contributors"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
description = "shadowsocks is a fast tunnel proxy that helps you bypass firewalls."
documentation = "https://docs.rs/shadowsocks-service"
edition = "2024"
keywords = ["shadowsocks", "proxy", "socks", "socks5", "firewall"]
license = "MIT"
name = "shadowsocks-service"
readme = "README.md"
repository = "https://github.com/shadowsocks/shadowsocks-rust"
rust-version = "1.88"
version = "1.24.0"

[package.metadata.docs.rs]
features = ["full", "local-http-rustls", "local-dns", "dns-over-tls", "dns-over-https"]

[target.'cfg(any(target_os = "ios", target_os = "macos", target_os = "linux", target_os = "android", target_os = "windows", target_os = "freebsd"))'.dependencies.tun]
features = ["async"]
optional = true
version = "0.8"

[target.'cfg(any(target_os = "macos", target_os = "ios", target_os = "freebsd", target_os = "openbsd"))'.dependencies.nix]
features = ["ioctl"]
version = "0.30"

[target."cfg(windows)".dependencies.windows-sys]
features = ["Win32_Networking_WinSock"]
version = "0.61"