gitmyhub

shadowsocks-rust

Rust ★ 11k updated 7h ago

A Rust port of shadowsocks

A Rust rewrite of the Shadowsocks proxy that tunnels your internet traffic through an encrypted connection to bypass firewalls and network restrictions, faster and more reliable than the original.

RustCargosetup: hardcomplexity 4/5

Shadowsocks is a proxy protocol designed to help users route their internet traffic through an encrypted tunnel and bypass network restrictions such as firewalls. This repository is a reimplementation of the original shadowsocks software, rewritten in Rust for better performance and reliability.

The way it works is: you run a server component on a machine outside the restricted network, and a local client component on the machine you want to use. Traffic from the local machine passes through the encrypted tunnel to the server, then out to the open internet. From the outside, the traffic looks like ordinary encrypted data rather than a recognizable proxy connection, which is how it avoids detection by many firewall systems.

This Rust version is organized as several separate libraries. The core protocol logic lives in one library, the service layer that manages running the client and server processes lives in another, and the final package bundles the command-line binaries together. You can install the binaries through Cargo, which is Rust's package manager, or through system package managers on Linux distributions like Arch Linux and NixOS. It is also available via Homebrew on macOS and as a Snap package.

The README covers a range of optional build features, including different DNS resolver backends, support for the HTTP and QUIC protocols locally, and DNS-over-HTTPS and DNS-over-TLS. Several community-maintained graphical clients for Linux, Windows, and routers running OpenWRT are linked as related projects.

The full README is longer than what was shown.

Where it fits