socks2 0.4.0-rc.0

SOCKS proxy clients
Documentation

socks2

Crates.io Version docs.rs Crates.io MSRV

SOCKS proxy support for Rust.

A fork of sfackler/rust-socks.

See changes.

Using

cargo add socks2

[dependencies]
socks2 = "0.4"

Features

client

[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").unwrap();
let buf = [126_u8; 50]
connection.write(&buf);

let mut connection = Socks5Stream::connect(PROXY, &TARGET).unwrap();
let buf = [126_u8; 50]
connection.write(&buf);

bind

[dependencies]
socks2 = { version = "0.4", default-features = false, features = ["bind"] }
use socks2::Socks4Listener;
use socks2::Socks5Listener;

let mut connection = Socks4Listener::bin(PROXY, &TARGET, "userid")
    .unwrap()
    .accept();

let mut connection = Socks5Listener::bind(PROXY, &TARGET)
    .unwrap()
    .accept();

udp

[dependencies]
socks2 = { version = "0.4", default-features = false, features = ["udp"] }
use socks2::Socks5Datagram;
use std::io::Write;

let mut connection = Socks5Datagram::bind(PROXY, &TARGET).unwrap();
let buf = [126_u8; 50]
connection.send_to(&buf, &OTHER_ADDR);