Skip to content

Commit

Permalink
Refactored and separate library into crates (#345)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
zonyitoo authored Dec 20, 2020
1 parent a7c9f75 commit 07583f3
Show file tree
Hide file tree
Showing 192 changed files with 13,708 additions and 11,429 deletions.
9 changes: 8 additions & 1 deletion .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,20 @@ rustflags = [
# "--print", "native-static-libs",
]

[target.'cfg(any(target_arch = "x86", target_arch = "x86_64"))']
[target.'cfg(target_arch = "x86_64")']
rustflags = [
# "--print", "native-static-libs",
# "-C", "target-cpu=native",
"-C", "target-feature=+aes,+pclmul,+sse,+sse2,+sse3,+ssse3,+sse4.1,+sse4.2,+avx,+avx2,+fma,adx",
]

[target.'cfg(target_arch = "x86")']
rustflags = [
# "--print", "native-static-libs",
# "-C", "target-cpu=native",
"-C", "target-feature=+aes,+pclmul,+sse,+sse2,+sse3,+ssse3",
]

[target.'cfg(target_arch = "arm")']
rustflags = [
# "--print", "native-static-libs",
Expand Down
Loading

0 comments on commit 07583f3

Please sign in to comment.