[package]
name = "runewarp"
version = "0.1.0"
edition = "2024"
description = "Runewarp is an ingress tunneling tool for exposing local services without moving TLS termination to the edge. Clients connect out over QUIC, so you can publish services without putting your backend directly on the Internet or leaking your public IP."
readme = "README.md"
homepage = "https://runewarp.com"
repository = "https://github.com/runewarp/runewarp"
license = "Apache-2.0"
keywords = ["ingress", "tunnel", "port-forwarding", "tls-passthrough", "nat-traversal"]
categories = ["network-programming", "command-line-utilities"]

[dependencies]
clap = { version = "4.6.1", features = ["derive"] }
futures-util = "0.3.32"
rand = "0.9.2"
tokio-rustls = { version = "0.26.4", default-features = false, features = ["logging", "ring", "tls12"] }
rustls-acme = { version = "0.15.2", default-features = false, features = ["ring", "tokio", "tls12", "webpki-roots"] }
rcgen = { version = "0.14.8", features = ["x509-parser"] }
quinn = { version = "0.11.9", default-features = false, features = ["log", "runtime-tokio", "rustls-ring"] }
rustls = { version = "0.23.35", default-features = false, features = ["logging", "ring", "std", "tls12"] }
rustls-native-certs = "0.8.3"
rustls-pemfile = "2.2.0"
serde = { version = "1.0.228", features = ["derive"] }
sha2 = "0.11.0"
time = "0.3.47"
tokio = { version = "1.52.3", features = ["io-util", "macros", "net", "rt-multi-thread", "signal", "sync", "time"] }
toml = "1.1.2"
tracing = "0.1.41"
tracing-subscriber = { version = "0.3.20", features = ["fmt", "time"] }
x509-parser = "0.18.1"

[dev-dependencies]
assert_cmd = "2.2.2"
proptest = "1.6.0"
tempfile = "3.27.0"

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