[package]
name = "socks5-impl"
version = "0.5.10"
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 = "2021"
readme = "README.md"
license = "GPL-3.0-or-later"
repository = "https://github.com/ssrlive/socks5-impl"

[features]
default = ["tokio"]
tokio = ["dep:tokio"]

[dependencies]
as-any = "0.3"
async-trait = "0.1"
byteorder = "1.5"
bytes = "1.5"
serde = { version = "1.0", features = ["derive"] }
thiserror = "1.0"
tokio = { version = "1.36", features = ["full"], optional = true }

[dev-dependencies]
clap = { version = "4.5", features = ["derive"] }
ctrlc2 = { version = "3.5", features = ["tokio", "termination"] }
dotenvy = "0.15"
env_logger = "0.11"
log = "0.4"
moka = { version = "0.12", features = ["future"] }
rand = "0.8"
tokio = { version = "1.36", features = ["macros", "rt-multi-thread"] }
trust-dns-proto = "0.23"

[[example]]
name = "demo-client"
path = "examples/demo-client.rs"
required-features = ["tokio"]

[[example]]
name = "demo-server"
path = "examples/demo-server.rs"
required-features = ["tokio"]

[[example]]
name = "dns-query"
path = "examples/dns-query.rs"
required-features = ["tokio"]

[[example]]
name = "dns2socks"
path = "examples/dns2socks.rs"
required-features = ["tokio"]

[[example]]
name = "s5-server"
path = "examples/s5-server.rs"
required-features = ["tokio"]

[[example]]
name = "udp-client"
path = "examples/udp-client.rs"
required-features = ["tokio"]
