[package]
edition = "2024"
name = "dynamo-bench"
version = "1.4.0"
authors = ["NVIDIA Inc. <sw-dl-dynamo@nvidia.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Lightweight HTTP benchmarks for Dynamo endpoints"
homepage = "https://github.com/ai-dynamo/dynamo"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/ai-dynamo/dynamo.git"
[features]
active-sequences = [
"router-bench",
"dep:dynamo-mocker",
"dep:indicatif",
"dep:dynamo-tokens",
"dep:libc",
"dep:rustc-hash",
"dep:tracing-subscriber",
]
claude-trace-export = [
"dep:chrono",
"dep:crossbeam-channel",
"dep:dynamo-data-gen",
"dep:hf-hub",
"dep:rustc-hash",
"dep:sha2",
"dep:tokenizers",
]
dc-ckf-consumer = []
dc-ckf-relay = [
"dep:crossbeam-channel",
"dep:dynamo-mocker",
"dep:indicatif",
"dep:libc",
"dep:rustc-hash",
"dep:sha2",
]
default = [
"claude-trace-export",
"test-support",
]
kv-router-stress-support = ["dep:reqwest"]
mocker-kvbm-offload = [
"offline-replay",
"dynamo-mocker/kvbm-offload",
]
mooncake = [
"router-bench",
"dep:dynamo-mocker",
"dep:indicatif",
"dep:libc",
"dep:tokio-util",
]
multiturn = [
"kv-router-stress-support",
"dep:dynamo-mocker",
"dep:futures-util",
"dep:indicatif",
"dep:rand",
]
offline-replay = ["dep:dynamo-mocker"]
profile = [
"offline-replay",
"dynamo-mocker/profile",
]
replay-bench = [
"offline-replay",
"dynamo-mocker/replay-bench",
]
router-bench = ["dynamo-kv-router/bench"]
router-metrics = ["dynamo-kv-router/metrics"]
router-test-support = [
"router-bench",
"router-metrics",
"dep:dynamo-mocker",
"dep:indicatif",
"dep:dynamo-tokens",
"dep:libc",
"dep:rustc-hash",
"dep:tokio-util",
"dep:tracing-subscriber",
]
satf = ["dep:dynamo-data-gen"]
test-support = [
"router-test-support",
"dynamo-mocker/test-support",
"dep:flate2",
"dep:tempfile",
"dep:tracing",
"dep:uuid",
]
[lib]
name = "dynamo_bench"
path = "src/lib.rs"
[[bin]]
name = "claude_trace_export"
path = "claude_trace_export.rs"
required-features = ["claude-trace-export"]
[[bin]]
name = "dc_ckf_consumer_bench"
path = "kv_router/dc_ckf_consumer_bench.rs"
required-features = ["dc-ckf-consumer"]
[[bin]]
name = "request_trace_to_satf"
path = "request_trace_to_satf.rs"
required-features = ["satf"]
[[test]]
name = "active_sequences_trace"
path = "tests/active_sequences_trace.rs"
[[test]]
name = "mooncake_trace"
path = "tests/mooncake_trace.rs"
[[test]]
name = "request_trace"
path = "tests/request_trace.rs"
[[bench]]
name = "active_sequences_bench"
path = "kv_router/active_sequences_bench.rs"
harness = false
required-features = ["active-sequences"]
[[bench]]
name = "dc_ckf_relay_bench"
path = "kv_router/dc_ckf_relay_bench.rs"
harness = false
required-features = ["dc-ckf-relay"]
[[bench]]
name = "mooncake_bench"
path = "kv_router/mooncake_bench.rs"
harness = false
required-features = ["mooncake"]
[[bench]]
name = "multiturn_bench"
path = "multiturn_bench.rs"
harness = false
required-features = ["multiturn"]
[[bench]]
name = "offline_replay_bench"
path = "offline_replay_bench.rs"
harness = false
required-features = ["offline-replay"]
[dependencies.anyhow]
version = "1"
[dependencies.chrono]
version = "0.4"
features = [
"alloc",
"std",
"clock",
"now",
"serde",
]
optional = true
default-features = false
[dependencies.clap]
version = "4.5"
features = ["derive"]
[dependencies.crossbeam-channel]
version = "0.5"
optional = true
[dependencies.dynamo-data-gen]
version = "1.4.0"
optional = true
[dependencies.dynamo-kv-router]
version = "1.4.0"
[dependencies.dynamo-mocker]
version = "1.4.0"
optional = true
[dependencies.dynamo-tokens]
version = "1.4.0"
optional = true
[dependencies.flate2]
version = "1"
optional = true
[dependencies.futures-util]
version = "0.3.32"
optional = true
[dependencies.hf-hub]
version = "0.4.2"
features = ["ureq"]
optional = true
default-features = false
[dependencies.indicatif]
version = "0.18"
optional = true
[dependencies.rand]
version = "0.9.2"
optional = true
[dependencies.reqwest]
version = "0.12.24"
features = [
"multipart",
"json",
"stream",
"rustls-tls",
]
optional = true
default-features = false
[dependencies.rustc-hash]
version = "2"
optional = true
[dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.tempfile]
version = "3"
optional = true
[dependencies.tokenizers]
version = "0.21.4"
features = ["onig"]
optional = true
default-features = false
[dependencies.tokio]
version = "=1.48.0"
features = ["full"]
[dependencies.tokio-util]
version = "0.7.17"
features = [
"codec",
"net",
"rt",
"io-util",
]
optional = true
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"local-time",
"json",
]
optional = true
[dependencies.uuid]
version = "1.18.1"
features = [
"v4",
"serde",
]
optional = true
[target.'cfg(target_os = "linux")'.dependencies.libc]
version = "0.2"
optional = true