Skip to content

SS5 v0.1.5

Choose a tag to compare

@leviathan0992 leviathan0992 released this 16 Sep 15:19
· 4 commits to main since this release

SS5 v0.1.5 reduces allocation overhead and simplifies connection handling while retaining existing configuration and wire-protocol behavior.

  • Reduce SOCKS5 parsing scratch space from 8 KiB to 257 bytes and eliminate slice-header allocation when returning pooled buffers.
  • Reuse preconnection queue capacity and simplify upstream ordering without changing selection policy.
  • Store cached DNS addresses as values and reuse existing UDP relays before allocating target addresses; updating a full cache no longer evicts unrelated entries.
  • Remove redundant connection cleanup and unreachable checks, propagate startup errors, and reduce per-connection success logging.
  • Unify Go code layout and comments; retain 64 KiB TCP buffers after comparing 64–512 KiB variants.

Source API compatibility: removed deprecated Service.TransferToTCP / Service.TransferToTLS and GetUDPBuffer / PutUDPBuffer. Source consumers should use Relay / RelayClient and BorrowUDPBuffer / ReturnUDPBuffer. Existing client/server configuration files and protocol behavior remain supported.

Validation: 32 temporary tests passed with the race detector; build/vet and GoReleaser configuration checks passed. All 8 platform archives passed content and checksum verification. Packaged macOS/ARM64 binaries passed 22 local TCP/UDP integration checks, covering managed authentication, legacy passthrough, IPv4/IPv6/domain targets, and malformed frames. Source scanning and all 16 release binaries reported no known vulnerabilities with govulncheck. Verification code and generated certificates are not included in the repository or release packages.