#socks5-proxy #proxy-server #socks5 #proxy #networking #authentication #network-security

gerevs

Gerevs is a Rust crate for implementing general-purpose SOCKS5 proxy servers with asynchronous execution and flexible authentication methods

9 releases

0.1.8 Aug 2, 2024
0.1.7 Aug 2, 2024
0.1.2 Jul 26, 2024

#1819 in Network programming

MIT license

67KB
1.5K SLoC

Gerevs: A Rust Crate for Secure SOCKS5 Proxies (RFC 1928)

Welcome to Gerevs!

Gerevs is a work-in-progress Rust crate designed to simplify the creation of secure, general-purpose SOCKS5 proxies. Whether you’re building a networked application or enhancing security, Gerevs aims to provide the tools you need with minimal hassle.

Features

  • Secure Connections: Ensure robust security for your proxy communications.
  • General Purpose: Flexible enough to suit a variety of use cases.
  • Rust Power: Leverage Rust’s performance and safety features.
  • Asynchronous Execution: Built using Tokio for high performance and efficient asynchronous operations.

SOCKS5 Commands

  • CONNECT
  • BIND
  • UDP ASSOCIATE (The proxy still doesn't support fragmentation, but I doubt it will because after scouring the internet I couldn't find client side implementations that actually bothered to implement fragmentation)

SOCKS5 Authentication

  • Username password (RFC 1929)
  • GSSAPI (RFC 1961)
  • User defined (The library allows the user of the library to define authentication methods themselves)

Note: Gerevs is designed for server-side implementation only.

What's in the Name?

The name Gerevs is derived from the Hebrew word "גרב" (gerev), which means "sock".

Getting Started

To get started with Gerevs, add it to your Cargo.toml:

[dependencies]
gerevs = "0.1.8"

Check out the Gerevs documentation for detailed usage instructions and examples.

Contributions

We welcome contributions! Check out our GitHub repository to get involved.

Join us in making proxy development easier and more secure with Rust! 🚀

Dependencies

~3–11MB
~118K SLoC