Cargo.toml 2.42 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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 = []
15
metrics = ["dep:dynamo-runtime"]
16
bench = ["dep:clap", "dep:indicatif", "dep:serde_json", "dep:plotters"]
17
18
standalone-indexer = ["metrics", "dep:axum", "dep:bytes", "dep:zeromq", "dep:serde_json", "dep:reqwest"]
indexer-bin = ["standalone-indexer", "dep:clap", "dep:tracing-subscriber"]
19
test-endpoints = ["indexer-bin"]
20
21
22

[dependencies]
# repo
23
dynamo-runtime = { workspace = true, optional = true }
24
25
26
27
28
dynamo-tokens = { workspace = true }

# workspace
anyhow = { workspace = true }
async-trait = { workspace = true }
Yan Ru Pei's avatar
Yan Ru Pei committed
29
dashmap = { workspace = true }
30
ordered-float = { workspace = true }
31
derive_builder = { workspace = true }
32
derive-getters = { workspace = true }
33
34
35
prometheus = { workspace = true }
rand = { workspace = true }
serde = { workspace = true }
Yan Ru Pei's avatar
Yan Ru Pei committed
36
serde_json = { workspace = true, optional = true }
37
38
39
40
thiserror = { workspace = true }
tokio = { workspace = true }
tokio-util = { workspace = true }
tracing = { workspace = true }
41
uuid = { workspace = true }
42
validator = { workspace = true }
43
44
xxhash-rust = { workspace = true }

Yan Ru Pei's avatar
Yan Ru Pei committed
45
46
47
# dependencies
flume = "0.12.0"
parking_lot = { workspace = true }
48
rmp-serde = { workspace = true }
Yan Ru Pei's avatar
Yan Ru Pei committed
49

50
51
52
# bench (optional)
clap = { version = "4.5", features = ["derive"], optional = true }
indicatif = { version = "0.18.0", optional = true }
53
plotters = { version = "0.3", optional = true, default-features = false, features = ["svg_backend", "line_series", "point_series", "full_palette"] }
54
rustc-hash = "2.1.1"
55

56
57
# indexer-bin (optional)
axum = { workspace = true, optional = true }
58
bytes = { workspace = true, optional = true }
59
reqwest = { workspace = true, optional = true }
60
61
62
zeromq = { version = "0.4.1", optional = true }
tracing-subscriber = { workspace = true, optional = true }

63
64
65
[package.metadata.cargo-machete]
ignored = ["indicatif", "plotters"]

66
67
68
69
70
[dev-dependencies]
rstest = "0.18.2"
rstest_reuse = "0.7.0"
serde_json = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros", "time"] }
71
dynamo-tokens = { workspace = true }
72
73
74
75
76

[[bin]]
name = "dynamo-kv-indexer"
path = "src/bin/kv_indexer/main.rs"
required-features = ["indexer-bin"]