[package]
name = "speed-cli"
version = "1.0.0"
edition = "2024"
rust-version = "1.96"
authors = ["Justin Chung <noreply@justinchung.net>"]
description = "Comprehensive multi-protocol network performance testing CLI (TCP, UDP, QUIC, HTTP/1.1, HTTP/2, h2c, HTTP/3)"
repository = "https://github.com/justin13888/speed-cli"
homepage = "https://github.com/justin13888/speed-cli"
readme = "README.md"
license = "Apache-2.0"
keywords = ["network", "benchmark", "throughput", "latency", "iperf"]
categories = ["command-line-utilities", "network-programming"]
[dependencies]
clap = { version = "4.5.40", features = ["derive"] }
tokio = { version = "1.46.1", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
ciborium = "0.2"
chrono = { version = "0.4.41", features = ["serde"] }
colored = "3.0.0"
humansize = "2.1"
reqwest = { version = "0.12.22", default-features = false, features = [
"rustls-tls",
"http2",
"http3",
"stream",
"charset",
"system-proxy",
] }
hyper = { version = "1.0", features = ["full"] }
hyper-util = { version = "0.1", features = ["full"] }
rustls = { version = "0.23.29", features = ["aws-lc-rs"] }
rand = "0.9"
futures = "0.3"
bytes = "1.5"
tracing = { version = "0.1.41", features = ["release_max_level_debug"] }
eyre = "0.6.12"
thiserror = "2.0.12"
tracing-subscriber = { version = "0.3.19", features = ["env-filter", "fmt"] }
num-format = "0.4.4"
axum = "0.8.4"
axum-server = { version = "0.7.2", features = ["tls-rustls"] }
tower-http = { version = "0.6.6", features = ["full"] }
tokio-util = { version = "0.7.15", features = ["full"] }
h3 = "0.0.8"
h3-quinn = "0.0.10"
quinn = { version = "0.11", default-features = false, features = [
"runtime-tokio",
"rustls-aws-lc-rs",
] }
serde_json = "1.0"
indexmap = { version = "2.10.0", features = ["serde"] }
indicatif = { version = "0.18.0", features = ["tokio"] }
num_cpus = "1.16.0"
rcgen = "0.14.2"
parking_lot = "0.12"
clap_complete = "4.6.5"
clap_mangen = "0.3.0"
[dev-dependencies]
criterion = "0.8.2"
tempfile = "3.10"
[[bench]]
name = "wire_codec"
harness = false
[lints.rust]
unsafe_code = "forbid"
[lints.clippy]
all = { level = "warn", priority = -1 }
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true