[package]
name = "kaioken"
version = "1.4.0"
edition = "2024"
description = "A Rust-based HTTP load testing tool with real-time terminal UI and DBZ flavor"
license = "MIT OR Apache-2.0"
repository = "https://github.com/lance0/kaioken"
keywords = ["load-testing", "http", "benchmark", "tui"]
categories = ["command-line-utilities", "development-tools::profiling"]
[features]
default = []
http3 = ["h3", "h3-quinn", "quinn", "rustls", "rustls-pemfile", "rustls-native-certs", "bytes", "http"]
grpc = ["tonic", "prost", "prost-types", "bytes"]
[dependencies]
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", default-features = false, features = ["gzip", "brotli", "rustls-tls", "cookies", "charset", "http2", "macos-system-configuration", "multipart", "stream", "socks"] }
tokio-tungstenite = { version = "0.26", features = ["rustls-tls-webpki-roots"] }
futures-util = "0.3"
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
clap_mangen = "0.2"
ratatui = "0.29"
crossterm = "0.28"
hdrhistogram = "7"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
tokio-util = { version = "0.7", features = ["rt"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
thiserror = "2"
humantime = "2"
humantime-serde = "1"
sha2 = "0.10"
regex-lite = "0.1"
chrono = { version = "0.4", features = ["serde"] }
hostname = "0.4"
jsonpath-rust = "1.0.4"
rand_regex = "0.18"
rand = "0.9"
rusqlite = { version = "0.32", features = ["bundled"] }
prometheus = "0.13"
h3 = { version = "0.0.8", optional = true }
h3-quinn = { version = "0.0.10", optional = true }
quinn = { version = "0.11", optional = true }
rustls = { version = "0.23", optional = true, default-features = false, features = ["ring", "std"] }
rustls-pemfile = { version = "2", optional = true }
rustls-native-certs = { version = "0.8", optional = true }
bytes = { version = "1", optional = true }
http = { version = "1", optional = true }
tonic = { version = "0.12", optional = true, default-features = false, features = ["tls-native-roots", "channel", "codegen"] }
prost = { version = "0.13", optional = true }
prost-types = { version = "0.13", optional = true }
[dev-dependencies]
wiremock = "0.6"
tokio-test = "0.4"
assert_cmd = "2"
predicates = "3"
tempfile = "3"
serde_json = "1"
[profile.release]
lto = true
codegen-units = 1