3 releases

0.1.3 Jun 23, 2019
0.1.2 Jun 22, 2019
0.1.0 Jun 20, 2019

#5 in #username-password

47 downloads per month

MIT license

23KB
450 lines

                     _
 _ __ ___   ___ _ __(_)_ __   ___
| '_ ` _ \ / _ \ '__| | '_ \ / _ \
| | | | | |  __/ |  | | | | | (_) |
|_| |_| |_|\___|_|  |_|_| |_|\___/

A SOCKS5 Proxy server written in Rust

🎁 Features

  • Multi-threaded connection handler
  • Lightweight (only uses CPU time for starting connections)
  • Standalone binary (no system dependencies)
  • 1+ Gb/second connection speeds (upload/download)
  • Tunable logging (try export RUST_LOG=merino=DEBUG)
  • SOCKS5 Compatible Authentication methods:
    • NoAuth
    • Username & Password
    • GSSAPI Coming Soon!

📦 Installation & 🏃 Usage

Installation

cargo install merino

OR

git clone https://github.com/ajmwagar/merino
cd merino
cargo install --path .

Usage

# Start a SOCKS5 Proxy server listening on port 1080 without authentication
merino --no-auth

# Use username/password authentication and read users from users.csv
merino --users users.csv

# Display a help menu
merino --help 

🚥 Roadmap

  • IPV6 Support
  • SOCKS5 Authentication Methods
    • NOAUTH
    • USERPASS
  • SOCKS5 Commands
    • CONNECT
    • BIND
    • ASSOCIATE
  • Actix based backend
  • SOCKS4 Support

Dependencies

~6–8.5MB
~133K SLoC