[package]
name = "shoes"
version = "0.2.1"
edition = "2024"
license = "MIT"
description = "A multi-protocol proxy server."
homepage = "https://github.com/cfal/shoes/"
repository = "https://github.com/cfal/shoes/"
readme = "README.md"
keywords = ["proxy", "proxy-server", "shadowsocks", "v2ray", "vmess"]
categories = ["command-line-utilities", "network-programming"]

[dependencies]
aes = "0.8.4"
argon2 = "0.5.3"
async-trait = "0.1.89"
aws-lc-rs = { version = "1.15.1", default-features = false }
base64 = "0.22.1"
blake3 = "1.8.2"
bytes = "1.11.0"
dashmap = "6.1.0"
digest = "0.10.7"
env_logger = "0.11.8"
futures = "0.3.31"
h3 = "0.0.8"
h3-quinn = "0.0.10"
http = "1.4.0"
log = { version = "0.4.28", features = ["release_max_level_info"] }
lru = "0.16.2"
md-5 = "0.10.6"
memchr = "2.7.6"
notify = "8.2.0"
parking_lot = "0.12.5"
percent-encoding = "2.3.2"
quinn = { version = "0.11.9", default-features = false, features = ["log", "platform-verifier", "runtime-tokio", "rustls-aws-lc-rs"] }
rand = "0.9.2"
rand_core = "0.9.3"
rcgen = { version = "0.14.5", features = ["x509-parser"] }
rustc-hash = "1.1.0"
rustls = "0.23.35"
serde = { version = "1.0.228", features = ["derive", "std"] }
subtle = "2.6.1"
serde_yaml = "0.9.34"
sha3 = "0.10.8"
socket2 = "0.6.1"
tokio = { version = "1.48.0", features = [
    "fs",
    "io-util",
    "macros",
    "net",
    "rt-multi-thread",
    "sync",
    "time",
] }
tokio-util = "0.7.17"
webpki-roots = { version = "1.0.4" }
x509-parser = "0.18.0"

[dev-dependencies]
tempfile = "3.23.0"
hyper = { version = "1.8.1", features = ["server", "http1"] }
hyper-util = { version = "0.1.18", features = ["tokio", "server"] }
http-body-util = "0.1.3"
rustls-pemfile = "2.2.0"
rcgen = "0.14.5"
tokio-rustls = "0.26.4"
serde_json = "1.0.145"

[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = "0.6.1"

[profile.release]
opt-level = 3
lto = "fat"
strip = true
