#lib #socks5 #protocols #volume #rfc1929 #rfc1928 #proto-ipv6

不依赖std protosocks

Rust中的Socks5协议库(RFC1928和RFC1929)

4个版本 (有破坏性)

0.7.0 2020年6月23日
0.6.0 2020年6月15日
0.5.0 2020年6月14日
0.4.0 2020年6月14日
0.1.0 2020年6月8日

#socks5中排名18

自定义许可

130KB
3K SLoC

protosocks

Rust中的Socks5协议库

其设计目标是简洁和健壮。其设计反目标是避免复杂的编译时计算,例如宏或类型技巧,即使在性能下降的情况下。

特性

  • RFC1928
  • RFC1929
  • IPv4
  • IPv6

使用rust-lang Docker镜像进行测试 docker run --rm -it -v "${PWD}:/volume" --workdir "/volume" -e RUST_BACKTRACE=full -e RUST_LOG=debug rust:latest cargo test --lib -- --exact --nocapture --test-threads=1

测试不同特性的组合

cargo test --no-default-features --features=proto-ipv4
cargo test --no-default-features --features=proto-ipv6
cargo test --no-default-features --features=proto-ipv4,proto-ipv6
cargo test --no-default-features --features=proto-ipv4,proto-ipv6,std

cargo clippy --all --all-targets
cargo fmt --all -- --check

生成测试覆盖率报告(cargo-tarpaulin)

docker run --rm -it --security-opt seccomp=unconfined -v "${PWD}:/volume" xd009642/tarpaulin sh -c "cargo tarpaulin --ignore-tests --out Html"
#docker run --rm -it --security-opt seccomp=unconfined -v "${PWD}:/volume" xd009642/tarpaulin sh -c "cargo tarpaulin --run-types Doctests --all"
#docker run --rm -it --security-opt seccomp=unconfined -v "${PWD}:/volume" xd009642/tarpaulin sh -c "cargo tarpaulin --run-types Tests --all"
#docker run --rm -it --security-opt seccomp=unconfined -v "${PWD}:/volume" xd009642/tarpaulin sh -c "cargo tarpaulin --run-types Doctests Tests --all"

依赖项

~3.5MB
~79K SLoC