shadowsocks-service 1.12.1

shadowsocks is a fast tunnel proxy that helps you bypass firewalls.
Documentation
[package]
name = "shadowsocks-service"
version = "1.12.1"
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"
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",
]

# Enable local server
local = []
# Enable remote server
server = []
# Enable manager server
manager = ["server"]

# Enables trust-dns for replacing tokio's builtin DNS resolver
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"]

# Enable DNS-relay
local-dns = ["local", "trust-dns", "rand"]
# Backward compatibility, DO NOT USE
local-dns-relay = ["local-dns"]
# Enable client flow statistic report
# Currently is only used in Android
local-flow-stat = ["local"]
# Enable HTTP protocol for sslocal
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"]
# Enable REDIR protocol for sslocal
# (transparent proxy)
local-redir = ["local", "mio"]
# Enable tunnel protocol for sslocal
local-tunnel = ["local"]
# Enable socks4 protocol for sslocal
local-socks4 = ["local"]
# Enable Tun interface protocol for sslocal
local-tun = ["local", "etherparse", "tun", "rand"]

# 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/stream-cipher"]

# Enable extra AEAD ciphers
# WARN: These non-standard AEAD ciphers are not officially supported by shadowsocks community
aead-cipher-extra = ["shadowsocks/aead-cipher-extra"]

# Enable detection against replay attack
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"
mio = { version = "0.7", optional = true }

socket2 = { version = "0.4", features = ["all"] }
libc = "0.2"

hyper = { version = "0.14.14", 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.9", optional = true }

serde = { version = "1.0", features = ["derive"] }
json5 = "0.4"

shadowsocks = { version = "1.12.0", path = "../shadowsocks" }

# Just for the ioctl call macro
[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"]