Cargo Features

[dependencies]
shadowsocks = { version = "1.21.0", default-features = false, features = ["hickory-dns", "trust-dns", "stream-cipher", "aead-cipher-extra", "aead-cipher-2022", "aead-cipher-2022-extra", "security-replay-attack-detect"] }
default = hickory-dns

The hickory-dns feature is set by default whenever shadowsocks is added without default-features = false somewhere in the dependency tree.

hickory-dns default trust-dns? = arc-swap, hickory-resolver, notify

Uses Hickory-DNS instead of tokio's builtin DNS resolver

Affects resolver::HickoryDnsSystemResolver

trust-dns = hickory-dns

Hickory-DNS was renamed from Trust-DNS, keep compatibility.

stream-cipher

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

Enables v1-stream of shadowsocks-crypto

aead-cipher-extra

Enable extra AEAD ciphers
WARN: These non-standard AEAD ciphers are not officially supported by shadowsocks community

Enables v1-aead-extra of shadowsocks-crypto

aead-cipher-2022 aead-cipher-2022-extra? = aes, lru_time_cache

Enable AEAD 2022

Enables small_rng of rand, v2 of shadowsocks-crypto

Affects config::method_support_eih, protocol::v2

aead-cipher-2022-extra = aead-cipher-2022

Enable AEAD 2022 with extra ciphers

Enables v2-extra of shadowsocks-crypto

security-replay-attack-detect = bloomfilter

Enable detection against replay attack

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

bloomfilter security-replay-attack-detect?

Enables bloomfilter ^1.0.8

rand aead-cipher-2022?
lru_time_cache aead-cipher-2022?
hickory-resolver hickory-dns
arc-swap hickory-dns
notify hickory-dns

Enables notify ^6.0

aes aead-cipher-2022?