[package]
name = "socks5-impl"
version = "0.8.0"
authors = ["ssrlive <ssrlivebox@gmail.com>"]
description = "Fundamental abstractions and async read / write functions for SOCKS5 protocol and Relatively low-level asynchronized SOCKS5 server implementation based on tokio"
categories = ["network-programming", "asynchronous"]
keywords = ["socks5", "socks", "proxy", "async", "network"]
edition = "2024"
readme = "README.md"
license = "GPL-3.0-or-later"
repository = "https://github.com/ssrlive/socks5-impl"
[package.metadata.docs.rs]
all-features = true
[features]
client = ["tokio"]
serde = ["dep:serde"]
server = ["tokio"]
tokio = ["dep:tokio", "async-trait"]
[dependencies]
async-trait = { version = "0.1.89", optional = true }
bytes = "1.11.0"
percent-encoding = "2.3.2"
serde = { version = "1.0.228", features = ["derive"], optional = true }
thiserror = "2.0.17"
tokio = { version = "1.48.0", default-features = false, features = [
"net",
"io-util",
"time",
"macros",
"rt",
], optional = true }
[dev-dependencies]
clap = { version = "4.5.53", features = ["derive"] }
ctrlc2 = { version = "3.7.3", features = ["async", "termination"] }
dotenvy = "0.15.7"
env_logger = "0.11.8"
hickory-proto = "0.25.2"
log = "0.4.29"
moka = { version = "0.12.11", features = ["future"] }
rand = "0.9.2"
tokio = { version = "1.48.0", features = ["rt-multi-thread"] }
tokio-util = { version = "0.7.17", features = [] }
[[example]]
name = "demo-client"
path = "examples/demo-client.rs"
required-features = ["client"]
[[example]]
name = "demo-server"
path = "examples/demo-server.rs"
required-features = ["tokio"]
[[example]]
name = "dns-query"
path = "examples/dns-query.rs"
required-features = ["client"]
[[example]]
name = "s5-server"
path = "examples/s5-server.rs"
required-features = ["server"]
[[example]]
name = "udp-client"
path = "examples/udp-client.rs"
required-features = ["client"]