Skip to content
/ proxied Public

Unified proxy connection structure for Rust

Notifications You must be signed in to change notification settings

hdbg/proxied

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proxied

Async SOCKS4/5 and HTTP(s) client connectors for Rust

Features

  • HTTP/HTTPS proxy
  • SOCKS4/5 proxy
  • Basic authorization for each type of proxy
  • Fully async
  • Proxy address as DNS Name
  • Round-robin dispatch in case of multiple addresses

Getting started

Add the following to your Cargo.toml file:

[dependencies]
proxied = "0.3"

Example

use proxied::{Proxy, TCPConnection, NetworkTarget};

#[tokio::main]
async fn main() {
    let proxy = Proxy::from_str("socks5://127.0.0.1:1080").unwrap();
    let connection = proxy.connect(NetworkTarget::Domain {domain: "tcpbin.com", port: 4242}).await.unwrap();

    // Send data to the echo server
    let data = &[1, 2, 3, 4, 5, 6, 7, 8, 9];
    connection.write(data).await.unwrap(); 

    // Read the data back
    let mut buf = vec![0; data.len()];
    connection.read_exact(&mut buf).await.unwrap();

}

About

Unified proxy connection structure for Rust

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages