SOCKS proxy support for Rust.
A fork of sfackler/rust-socks.
See changes.
cargo add socks2
[dependencies]
socks2 = "0.4"
[dependencies]
socks2 = { version = "0.4", default-features = false, features = ["client"] }
use socks2::Socks4Stream;
use socks2::Socks5Stream;
use std::io::Write;
let mut connection = Socks4Stream::connect(PROXY, &TARGET, "userid", None).unwrap();
let buf = [126_u8; 50]
connection.write(&buf);
let mut connection = Socks5Stream::connect(PROXY, &TARGET, None).unwrap();
let buf = [126_u8; 50]
connection.write(&buf);
[dependencies]
socks2 = { version = "0.4", default-features = false, features = ["bind"] }
use socks2::Socks4Listener;
use socks2::Socks5Listener;
let mut connection = Socks4Listener::bind(PROXY, &TARGET, "userid", None)
.unwrap()
.accept();
let mut connection = Socks5Listener::bind(PROXY, &TARGET, None)
.unwrap()
.accept();
[dependencies]
socks2 = { version = "0.4", default-features = false, features = ["udp"] }
use socks2::Socks5Datagram;
use std::io::Write;
let mut connection = Socks5Datagram::bind(PROXY, &TARGET, None).unwrap();
let buf = [126_u8; 50]
connection.send_to(&buf, &OTHER_ADDR);
socks2 follows Major Zero Semver. The major version is always zero. Every minor version contains breaking changes. Every patch version will be backwards compatible.
Alpha, Betas, and Release Candidates may contain breaking changes between any version.