mirror of
https://github.com/shadowsocks/shadowsocks-rust.git
synced 2026-11-07 00:13:33 +00:00
* Refactored and separate library into crates
- shadowsocks: the core feature of shadowsocks
- shadowsocks-service: library for building shadowsocks services
- dns, http, redir, socks, tunnel
- load balancer
- shadowsocks-rust: release binaries
fix #347
* unified DnsResolver implementation
* unified local service common parameters into ServiceContext
- ServiceContext is common parameters shared between all local
implementations
- Completely removed https local support
* add #292 reply attack protection
* migrated redir local server
* support customizing outbound socket bind address
* manager outbound socket should accepts connect_opts
* republic local implementations
* socks5 udp server should always listen to client address
* socks4 controlled by local-socks4 feature
* socks4 also obey mode configuration
* socks server tcp cannot be disable. add support of udp-bind-addr parameter
* add udp-bind-addr for customizing udp-relay bind-addr
* local-dns infra, support customizing resolver
* fully implements DNS relay server
* support binding to specific interface on Linux-like platform
* tcp cannot be disabled in socks
* enable local-flow-stat
* fixed windows build
* fixed android specific warnings and compile errors
* allow udp_only mode in socks5
* dns relay listens to both TCP and UDP, mode controls outbound upstreams
* dns relay retries twice if request failed
* doc
* fix DnsClient typo
* fix stream EncryptWriter bug
* allow disable logging output
updated dependencies
* add readme
* refine doc
* remove depending on trust-dns-client
* socks4/4a client
* allow socks5 udp_only mode, fixes compile warning
* create standalone socks5 UDP relay server
- socks5 UDP association full cone (NAT2)
* server udp relay supports full cone (NAT2)
* acl moved to crate root
* redir udp relay support full cone (NAT2)
* standard socks5 udp test must use tcp_and_udp mode
* set server context fields with pub APIs
* udp_max_associations and udp_timeout default value set in Config
* local dns resolver retry with fixed attempts
* max_udp_association keeps unlimited by default
* fixed logging binary name
* pops first exited future result for local and server
* update reverse target index cache
* fix ProxyClientStreamWriteHalf that allows sending empty buffers
ref #232
* remove unused import when socks4 is disabled
* make balancer become a globally shared object
* print plugin exit status
* control local, server, manager services in features
130 lines
3.3 KiB
TOML
130 lines
3.3 KiB
TOML
[package]
|
|
name = "shadowsocks-rust"
|
|
version = "1.9.0"
|
|
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" }
|
|
|
|
[[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 = ["utilities"]
|
|
|
|
[[bin]]
|
|
name = "ssmanager"
|
|
path = "bin/ssmanager.rs"
|
|
required-features = ["manager"]
|
|
|
|
[workspace]
|
|
members = [
|
|
"crates/shadowsocks",
|
|
"crates/shadowsocks-service",
|
|
]
|
|
|
|
[profile.release]
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
incremental = false
|
|
panic = "abort"
|
|
|
|
[features]
|
|
default = [
|
|
"logging",
|
|
"trust-dns",
|
|
"local",
|
|
"server",
|
|
"manager",
|
|
"utilities",
|
|
"local-dns",
|
|
"local-http",
|
|
"local-http-rustls",
|
|
"local-tunnel",
|
|
"local-socks4",
|
|
]
|
|
# Uses single-threaded scheduler instead of default multi-threaded scheduler
|
|
single-threaded = []
|
|
|
|
# Enable local server
|
|
local = ["shadowsocks-service/local"]
|
|
# Enable remote server
|
|
server = ["shadowsocks-service/server"]
|
|
# Enable manager server
|
|
manager = ["shadowsocks-service/manager"]
|
|
# Enable utilities
|
|
utilities = []
|
|
|
|
# Enables trust-dns for replacing tokio's builtin DNS resolver
|
|
trust-dns = ["shadowsocks-service/trust-dns"]
|
|
dns-over-tls = ["shadowsocks-service/dns-over-tls"]
|
|
dns-over-https = ["shadowsocks-service/dns-over-https"]
|
|
|
|
# Enable logging output
|
|
logging = ["log4rs"]
|
|
|
|
# Enable DNS-relay
|
|
local-dns = ["local", "shadowsocks-service/local-dns"]
|
|
# 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", "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-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 jemalloc for binaries
|
|
jemalloc = ["jemallocator"]
|
|
# Enable bundled tcmalloc
|
|
tcmalloc-vendored = ["tcmalloc/bundled"]
|
|
|
|
[dependencies]
|
|
log = "0.4"
|
|
log4rs = { version = "0.13", optional = true }
|
|
|
|
clap = { version = "2", features = ["wrap_help", "suggestions"] }
|
|
cfg-if = "1"
|
|
qrcode = { version = "0.12", default-features = false }
|
|
|
|
futures = "0.3"
|
|
tokio = { version = "0.3.1", features = ["full"] }
|
|
|
|
mimalloc = { version = "0.1", optional = true }
|
|
tcmalloc = { version = "0.3", optional = true }
|
|
jemallocator = { version = "0.3", optional = true }
|
|
|
|
shadowsocks-service = { version = "1.9", path = "./crates/shadowsocks-service" }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
daemonize = "0.4"
|
|
|
|
[dev-dependencies]
|
|
byteorder = "1.3"
|
|
env_logger = "0.8"
|
|
byte_string = "1.0"
|