# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 [package] name = "dynamo-kv-router" description = "KV Router - Radix tree for LLM KV cache routing" version.workspace = true edition.workspace = true authors.workspace = true license.workspace = true repository.workspace = true [features] default = [] metrics = [] bench = ["dep:clap", "dep:indicatif", "dep:serde_json", "dep:plotters"] indexer-bin = ["metrics", "dep:axum", "dep:bytes", "dep:clap", "dep:zeromq", "dep:tracing-subscriber", "dep:serde_json", "dep:reqwest"] test-endpoints = ["indexer-bin"] [dependencies] # repo dynamo-runtime = { workspace = true } dynamo-tokens = { workspace = true } # workspace anyhow = { workspace = true } async-trait = { workspace = true } dashmap = { workspace = true } derive_builder = { workspace = true } derive-getters = { workspace = true } prometheus = { workspace = true } rand = { workspace = true } serde = { workspace = true } serde_json = { workspace = true, optional = true } thiserror = { workspace = true } tokio = { workspace = true } tokio-util = { workspace = true } tracing = { workspace = true } uuid = { workspace = true } validator = { workspace = true } xxhash-rust = { workspace = true } # dependencies flume = "0.12.0" parking_lot = { workspace = true } rmp-serde = { workspace = true } # bench (optional) clap = { version = "4.5", features = ["derive"], optional = true } indicatif = { version = "0.18.0", optional = true } plotters = { version = "0.3", optional = true, default-features = false, features = ["svg_backend", "line_series", "point_series", "full_palette"] } rustc-hash = "2.1.1" # indexer-bin (optional) axum = { workspace = true, optional = true } bytes = { workspace = true, optional = true } reqwest = { workspace = true, optional = true } zeromq = { version = "0.4.1", optional = true } tracing-subscriber = { workspace = true, optional = true } [package.metadata.cargo-machete] ignored = ["indicatif", "plotters"] [dev-dependencies] rstest = "0.18.2" rstest_reuse = "0.7.0" serde_json = { workspace = true } tokio = { workspace = true, features = ["rt", "macros", "time"] } dynamo-tokens = { workspace = true } [[bin]] name = "dynamo-kv-indexer" path = "src/bin/kv_indexer/main.rs" required-features = ["indexer-bin"]