[package]
name = "tunnix"
version = "0.2.2"
edition = "2021"
authors = ["Aero Wang <aero.windwalker@gmail.com>"]
license = "MIT"
repository = "https://github.com/aeroxy/tunnix"
homepage = "https://github.com/aeroxy/tunnix"
readme = "README.md"
keywords = ["proxy", "socks5", "tunnel", "encryption", "sse"]
categories = ["network-programming", "command-line-utilities"]
description = "Encrypted SOCKS5/HTTP proxy tunnel over HTTP/SSE — works through reverse proxies, Cloud Shell, Codespaces, and other HTTP-only environments."
include = [
    "src/**/*.rs",
    "Cargo.toml",
    "README.md",
    "QUICKSTART.md",
    "LICENSE",
    "config.example.toml",
]

[[bin]]
name = "tunnix"
path = "src/main.rs"

[dependencies]
# Async runtime
tokio = { version = "1.40", features = ["full"] }
rustls = { version = "0.23", features = ["ring"] }

# Encryption
chacha20poly1305 = "0.10"
argon2 = "0.5"
rand = "0.8"
zeroize = "1.8"

# Serialization
serde = { version = "1.0", features = ["derive"] }
bincode = "1.3"

# CLI & Config
clap = { version = "4.5", features = ["derive", "env"] }
toml = "0.8"

# Error handling & logging
anyhow = "1.0"
thiserror = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# HTTP
hyper = { version = "1.6", features = ["full"] }
hyper-util = { version = "0.1", features = ["full"] }
http-body-util = "0.1"
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "cookies", "stream"] }

# Encoding
base64ct = { version = "1.6", features = ["alloc"] }

# Utilities
futures = "0.3"
bytes = "1.7"
arc-swap = "1"
