[package]
name = "shadowsocks-service"
version = "1.12.4"
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-service"
keywords = ["shadowsocks", "proxy", "socks", "socks5", "firewall"]
license = "MIT"
edition = "2018"
[badges]
maintenance = { status = "passively-maintained" }
[features]
full = [
"local",
"server",
"manager",
"trust-dns",
"local-http",
"local-redir",
"local-tunnel",
"local-socks4",
]
local = []
server = []
manager = ["server"]
trust-dns = ["trust-dns-resolver", "shadowsocks/trust-dns"]
dns-over-tls = ["trust-dns", "trust-dns-resolver/dns-over-tls", "trust-dns-resolver/dns-over-rustls"]
dns-over-https = ["trust-dns", "trust-dns-resolver/dns-over-https", "trust-dns-resolver/dns-over-https-rustls"]
local-dns = ["local", "trust-dns", "rand"]
local-dns-relay = ["local-dns"]
local-flow-stat = ["local"]
local-http = ["local", "hyper", "tower"]
local-http-native-tls = ["local-http", "tokio-native-tls", "native-tls"]
local-http-rustls = ["local-http", "tokio-rustls", "webpki-roots", "rustls-native-certs"]
local-redir = ["local"]
local-tunnel = ["local"]
local-socks4 = ["local"]
local-tun = ["local", "etherparse", "tun", "rand"]
stream-cipher = ["shadowsocks/stream-cipher"]
aead-cipher-extra = ["shadowsocks/aead-cipher-extra"]
replay-attack-detect = ["shadowsocks/replay-attack-detect"]
[dependencies]
log = "0.4"
log4rs = "1.0"
cfg-if = "1"
qrcode = { version = "0.12", default-features = false }
pin-project = "1.0"
once_cell = "1.8"
thiserror = "1.0"
arc-swap = "1.3"
spin = { version = "0.9", features = ["std"] }
lru_time_cache = "0.11"
bytes = "1.0"
byte_string = "1.0"
byteorder = "1.3"
rand = { version = "0.8", optional = true }
futures = "0.3"
tokio = { version = "1.5", features = ["io-util", "macros", "net", "parking_lot", "rt", "sync", "time"] }
tokio-native-tls = { version = "0.3", optional = true }
native-tls = { version = "0.2.8", optional = true, features = ["alpn"] }
tokio-rustls = { version = "0.23", optional = true }
webpki-roots = { version = "0.22", optional = true }
rustls-native-certs = { version = "0.6.1", optional = true }
async-trait = "0.1"
socket2 = { version = "0.4", features = ["all"] }
libc = "0.2"
hyper = { version = "0.14.16", optional = true, features = ["full"] }
tower = { version = "0.4", optional = true }
trust-dns-resolver = { version = "0.20.3", optional = true, features = ["serde-config"] }
idna = "0.2"
ipnet = "2.3"
iprange = "0.6"
regex = "1.4"
tun = { version = "0.5.3", optional = true, features = ["async"] }
etherparse = { version = "0.10", optional = true }
serde = { version = "1.0", features = ["derive"] }
json5 = "0.4"
shadowsocks = { version = "1.12.3", path = "../shadowsocks" }
[target.'cfg(any(target_os = "macos", target_os = "ios", target_os = "freebsd", target_os = "netbsd", target_os = "openbsd"))'.dependencies]
nix = "0.23"
[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["mswsock", "winsock2"] }
[dev-dependencies]
byteorder = "1.3"
env_logger = "0.9"
[package.metadata.docs.rs]
features = ["full", "local-http-rustls", "local-dns", "dns-over-tls", "dns-over-https"]