2 个版本
0.1.1 | 2021 年 4 月 20 日 |
---|---|
0.1.0 | 2021 年 4 月 19 日 |
#19 in #socks5
19KB
490 行
socks5-proxy
socks5-proxy 是一个基于 tokio 的 socks5 库,提供服务器和客户端功能。
使用方法
将此添加到您的 Cargo.toml 依赖项
socks5-proxy = "0.1"
tokio = { version = "1", features = ["full"] }
anyhow = "1.0"
服务器
use anyhow::Result;
use socks5_proxy::server;
#[tokio::main]
async fn main() -> Result<()> {
let s = server::new("127.0.0.1:8080".parse()?, None)?;
s.run().await?;
Ok(())
}
客户端
use anyhow::Result;
use socks5_proxy::{client, Addr};
use tokio::io::{AsyncReadExt, AsyncWriteExt};
#[tokio::main]
async fn main() -> Result<()> {
let mut client = client::new(
"localhost:1080",
&Addr::HostnamePort("www.google.com:80".into()),
None,
)
.await?;
client.write_all(b"GET / HTTP/1.0\r\n\r\n").await?;
let mut buffer = Vec::new();
client.read_to_end(&mut buffer).await?;
println!("{}", String::from_utf8_lossy(&buffer));
Ok(())
}
改进
欢迎各种问题和 PR!
依赖项
~2.7–9.5MB
~77K SLoC