mirror of
https://github.com/shadowsocks/shadowsocks-rust.git
synced 2026-02-09 01:59:16 +08:00
* fix(deps): update rust crate xdg to v3 * fix: xdg BaseDirectories has default values --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: zonyitoo <zonyitoo@gmail.com>
270 lines
7.2 KiB
TOML
270 lines
7.2 KiB
TOML
[package]
|
|
name = "shadowsocks-rust"
|
|
version = "1.23.2"
|
|
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-rust"
|
|
keywords = ["shadowsocks", "proxy", "socks", "socks5", "firewall"]
|
|
license = "MIT"
|
|
edition = "2024"
|
|
rust-version = "1.85"
|
|
|
|
[badges]
|
|
maintenance = { status = "passively-maintained" }
|
|
|
|
[[bin]]
|
|
name = "sslocal"
|
|
path = "bin/sslocal.rs"
|
|
required-features = ["local"]
|
|
|
|
[[bin]]
|
|
name = "ssserver"
|
|
path = "bin/ssserver.rs"
|
|
required-features = ["server"]
|
|
|
|
[[bin]]
|
|
name = "ssurl"
|
|
path = "bin/ssurl.rs"
|
|
required-features = ["utility"]
|
|
|
|
[[bin]]
|
|
name = "ssmanager"
|
|
path = "bin/ssmanager.rs"
|
|
required-features = ["manager"]
|
|
|
|
[[bin]]
|
|
name = "ssservice"
|
|
path = "bin/ssservice.rs"
|
|
required-features = ["service"]
|
|
|
|
[[bin]]
|
|
name = "sswinservice"
|
|
path = "bin/sswinservice.rs"
|
|
required-features = ["winservice"]
|
|
|
|
[workspace]
|
|
members = ["crates/shadowsocks", "crates/shadowsocks-service"]
|
|
|
|
[profile.release]
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
incremental = false
|
|
panic = "abort"
|
|
strip = true
|
|
|
|
[features]
|
|
default = ["full"]
|
|
|
|
# Basic Features
|
|
basic = [
|
|
"logging",
|
|
"hickory-dns",
|
|
"local",
|
|
"server",
|
|
"multi-threaded",
|
|
"aead-cipher",
|
|
]
|
|
|
|
# All Suggested Features
|
|
full = [
|
|
"logging",
|
|
"hickory-dns",
|
|
"dns-over-tls",
|
|
"dns-over-https",
|
|
"local",
|
|
"server",
|
|
"manager",
|
|
"utility",
|
|
"service",
|
|
"local-http",
|
|
"local-http-rustls",
|
|
"local-tunnel",
|
|
"local-socks4",
|
|
"local-dns",
|
|
"local-redir",
|
|
"local-tun",
|
|
"local-online-config",
|
|
"multi-threaded",
|
|
"stream-cipher",
|
|
"aead-cipher",
|
|
"aead-cipher-2022",
|
|
]
|
|
|
|
# Full features with extra (non-stable)
|
|
full-extra = [
|
|
"full",
|
|
"dns-over-h3",
|
|
"local-fake-dns",
|
|
"aead-cipher-extra",
|
|
"aead-cipher-2022-extra",
|
|
"security-replay-attack-detect",
|
|
]
|
|
|
|
# Enable local server
|
|
local = ["shadowsocks-service/local"]
|
|
# Enable remote server
|
|
server = ["shadowsocks-service/server"]
|
|
# Enable manager server
|
|
manager = ["shadowsocks-service/manager"]
|
|
# Enable utility
|
|
utility = ["qrcode"]
|
|
# Enable service
|
|
service = ["local", "server", "manager"]
|
|
# Enable Windows Service
|
|
winservice = ["service", "windows-service"]
|
|
|
|
# Enables Hickory-DNS for replacing tokio's builtin DNS resolver
|
|
hickory-dns = ["shadowsocks-service/hickory-dns"]
|
|
# Hickory-DNS was renamed from Trust-DNS, keep compatibility.
|
|
trust-dns = ["hickory-dns"]
|
|
dns-over-tls = ["shadowsocks-service/dns-over-tls"]
|
|
dns-over-https = ["shadowsocks-service/dns-over-https"]
|
|
dns-over-h3 = ["shadowsocks-service/dns-over-h3"]
|
|
|
|
# Enable logging output
|
|
logging = ["log4rs", "tracing", "tracing-subscriber", "time"]
|
|
|
|
# Enable DNS-relay
|
|
local-dns = ["local", "shadowsocks-service/local-dns"]
|
|
# Enable client flow statistic report
|
|
# Currently is only used in Android
|
|
local-flow-stat = ["local", "shadowsocks-service/local-flow-stat"]
|
|
# Enable HTTP protocol for sslocal
|
|
local-http = ["local", "shadowsocks-service/local-http"]
|
|
local-http-native-tls = [
|
|
"local-http",
|
|
"shadowsocks-service/local-http-native-tls",
|
|
]
|
|
local-http-native-tls-vendored = [
|
|
"local-http",
|
|
"shadowsocks-service/local-http-native-tls-vendored",
|
|
]
|
|
local-http-rustls = ["local-http", "shadowsocks-service/local-http-rustls"]
|
|
# Enable REDIR protocol for sslocal
|
|
# (transparent proxy)
|
|
local-redir = ["local", "shadowsocks-service/local-redir"]
|
|
# Enable tunnel protocol for sslocal
|
|
local-tunnel = ["local", "shadowsocks-service/local-tunnel"]
|
|
# Enable socks4 protocol for sslocal
|
|
local-socks4 = ["local", "shadowsocks-service/local-socks4"]
|
|
# Enable Tun interface protocol for sslocal
|
|
local-tun = ["local", "shadowsocks-service/local-tun", "ipnet"]
|
|
# Enable Fake DNS for sslocal
|
|
local-fake-dns = ["local", "shadowsocks-service/local-fake-dns", "ipnet"]
|
|
# sslocal support online URL (SIP008 Online Configuration Delivery)
|
|
# https://shadowsocks.org/doc/sip008.html
|
|
local-online-config = [
|
|
"local",
|
|
"mime",
|
|
"shadowsocks-service/local-online-config",
|
|
]
|
|
|
|
# ssurl support outline (ssconf) URL
|
|
utility-url-outline = ["reqwest"]
|
|
|
|
# Enable jemalloc for binaries
|
|
jemalloc = ["jemallocator"]
|
|
# Enable bundled tcmalloc
|
|
tcmalloc-vendored = ["tcmalloc/bundled"]
|
|
|
|
# Enable snmalloc for binaries
|
|
snmalloc = ["snmalloc-rs"]
|
|
|
|
# Enable tokio's multi-threaded runtime
|
|
multi-threaded = ["tokio/rt-multi-thread"]
|
|
|
|
# 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-service/stream-cipher"]
|
|
|
|
# Enable AEAD ciphers
|
|
aead-cipher = ["shadowsocks-service/aead-cipher"]
|
|
|
|
# Enable extra AEAD ciphers
|
|
# WARN: These non-standard AEAD ciphers are not officially supported by shadowsocks community
|
|
aead-cipher-extra = ["aead-cipher", "shadowsocks-service/aead-cipher-extra"]
|
|
|
|
# Enable AEAD 2022
|
|
aead-cipher-2022 = ["shadowsocks-service/aead-cipher-2022"]
|
|
# Enable AEAD 2022 with extra ciphers
|
|
aead-cipher-2022-extra = ["shadowsocks-service/aead-cipher-2022-extra"]
|
|
|
|
# Enable detection against replay attack (Stream / AEAD)
|
|
security-replay-attack-detect = [
|
|
"shadowsocks-service/security-replay-attack-detect",
|
|
]
|
|
replay-attack-detect = [
|
|
"security-replay-attack-detect",
|
|
] # Backward compatibility. DO NOT USE.
|
|
|
|
[dependencies]
|
|
log = "0.4"
|
|
log4rs = { version = "1.2", optional = true }
|
|
tracing = { version = "0.1", optional = true }
|
|
tracing-subscriber = { version = "0.3", optional = true, features = [
|
|
"std",
|
|
"fmt",
|
|
"env-filter",
|
|
"time",
|
|
"local-time",
|
|
] }
|
|
time = { version = "0.3", optional = true }
|
|
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
json5 = "0.4"
|
|
thiserror = "2.0"
|
|
base64 = "0.22"
|
|
mime = { version = "0.3", optional = true }
|
|
|
|
clap = { version = "4.5", features = ["wrap_help", "suggestions"] }
|
|
cfg-if = "1"
|
|
qrcode = { version = "0.14", default-features = false, optional = true }
|
|
sysexits = "0.9"
|
|
build-time = "0.1"
|
|
directories = "6.0"
|
|
xdg = "3.0"
|
|
rpassword = "7.3"
|
|
libc = { version = "0.2", features = ["extra_traits"] }
|
|
rand = "0.9"
|
|
|
|
futures = "0.3"
|
|
tokio = { version = "1", features = ["rt", "signal"] }
|
|
|
|
ipnet = { version = "2.10", optional = true }
|
|
|
|
mimalloc = { version = "0.1", default-features = false, optional = true }
|
|
tcmalloc = { version = "0.3", optional = true }
|
|
jemallocator = { version = "0.5", optional = true }
|
|
snmalloc-rs = { version = "0.3", optional = true }
|
|
rpmalloc = { version = "0.2", optional = true }
|
|
|
|
shadowsocks-service = { version = "1.23.2", path = "./crates/shadowsocks-service" }
|
|
|
|
windows-service = { version = "0.8", optional = true }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
daemonize = "0.5"
|
|
|
|
[target.'cfg(any(target_arch = "x86", target_arch = "x86_64", target_arch = "aarch64"))'.dependencies]
|
|
reqwest = { version = "0.12", features = [
|
|
"blocking",
|
|
"rustls-tls",
|
|
"rustls-tls-native-roots",
|
|
], default-features = false, optional = true }
|
|
|
|
[target.'cfg(not(any(target_arch = "x86", target_arch = "x86_64", target_arch = "aarch64")))'.dependencies]
|
|
reqwest = { version = "0.12", features = [
|
|
"blocking",
|
|
"native-tls-vendored",
|
|
], optional = true }
|
|
|
|
[dev-dependencies]
|
|
byteorder = "1.5"
|
|
env_logger = "0.11"
|
|
byte_string = "1.0"
|
|
tokio = { version = "1", features = ["net", "time", "macros", "io-util"] }
|