[package]
edition = "2024"
name = "dynamo-llm"
version = "1.4.0"
authors = ["NVIDIA Inc. <sw-dl-dynamo@nvidia.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Dynamo LLM Library"
homepage = "https://github.com/ai-dynamo/dynamo"
readme = false
license = "Apache-2.0"
repository = "https://github.com/ai-dynamo/dynamo.git"
[features]
bench = ["dynamo-kv-router/bench"]
block-manager = [
"dep:nixl-sys",
"dep:cudarc",
"dep:nix",
"dep:aligned-vec",
]
block-manager-bench = [
"block-manager",
"testing-full",
"dep:clap",
"dep:indicatif",
]
ckf-diagnostics = []
cuda = ["dep:cudarc"]
default = ["block-manager"]
integration = ["dynamo-runtime/integration"]
kv-router-stress = [
"dep:clap",
"dep:indicatif",
"bench",
]
media-ffmpeg = [
"dep:video-rs",
"dep:ffmpeg-next",
"dep:memfile",
]
mm-routing = [
"dep:llm-multimodal",
"dep:llm-tokenizer",
]
nccl = [
"dep:cudarc",
"cudarc/nccl",
]
nvtx = ["dynamo-runtime/nvtx"]
request-trace-bench = []
testing-cuda = [
"dep:cudarc",
"dynamo-memory/testing-cuda",
]
testing-etcd = []
testing-full = [
"testing-cuda",
"testing-nixl",
]
testing-nixl = [
"dep:nixl-sys",
"dynamo-memory/testing-nixl",
]
[lib]
name = "dynamo_llm"
path = "src/lib.rs"
[[bin]]
name = "bench_local_transfer_v2"
path = "bin/bench_local_transfer_v2.rs"
required-features = ["block-manager-bench"]
[[bin]]
name = "generate-frontend-openapi"
path = "src/bin/generate_frontend_openapi.rs"
[[example]]
name = "mm_token_count"
path = "examples/mm_token_count.rs"
[[test]]
name = "aggregators"
path = "tests/aggregators.rs"
[[test]]
name = "anthropic_http_replay"
path = "tests/anthropic_http_replay.rs"
[[test]]
name = "backend"
path = "tests/backend.rs"
[[test]]
name = "deepseek_v32_encoding"
path = "tests/deepseek_v32_encoding.rs"
[[test]]
name = "deepseek_v4_encoding"
path = "tests/deepseek_v4_encoding.rs"
[[test]]
name = "frontend_protocol_validation_http"
path = "tests/frontend_protocol_validation_http.rs"
[[test]]
name = "http-service"
path = "tests/http-service.rs"
[[test]]
name = "http-service-aiperf-responses"
path = "tests/http-service-aiperf-responses.rs"
[[test]]
name = "http_metrics"
path = "tests/http_metrics.rs"
[[test]]
name = "http_namespace_integration"
path = "tests/http_namespace_integration.rs"
[[test]]
name = "http_websocket"
path = "tests/http_websocket.rs"
[[test]]
name = "kserve_service"
path = "tests/kserve_service.rs"
[[test]]
name = "kv_manager"
path = "tests/kv_manager.rs"
[[test]]
name = "logprob_analysis_integration"
path = "tests/logprob_analysis_integration.rs"
[[test]]
name = "lora_simulation"
path = "tests/lora_simulation/main.rs"
[[test]]
name = "model_card"
path = "tests/model_card.rs"
[[test]]
name = "namespace"
path = "tests/namespace.rs"
[[test]]
name = "openai_completions"
path = "tests/openai_completions.rs"
[[test]]
name = "parallel_tool_call_integration"
path = "tests/parallel_tool_call_integration.rs"
[[test]]
name = "postprocessor_parsing_stream"
path = "tests/postprocessor_parsing_stream.rs"
[[test]]
name = "preprocessor"
path = "tests/preprocessor.rs"
[[test]]
name = "request_trace_nats_integration"
path = "tests/request_trace_nats_integration.rs"
[[test]]
name = "responses_http_replay"
path = "tests/responses_http_replay.rs"
[[test]]
name = "test_chat_template_args"
path = "tests/test_chat_template_args.rs"
[[test]]
name = "test_common_ext"
path = "tests/test_common_ext.rs"
[[test]]
name = "test_reasoning_parser"
path = "tests/test_reasoning_parser.rs"
[[test]]
name = "test_stop_behavior"
path = "tests/test_stop_behavior.rs"
[[test]]
name = "test_streaming_tool_parsers"
path = "tests/test_streaming_tool_parsers.rs"
[[test]]
name = "test_streaming_usage"
path = "tests/test_streaming_usage.rs"
[[test]]
name = "test_token_data"
path = "tests/test_token_data.rs"
[[test]]
name = "tokenizers"
path = "tests/tokenizers.rs"
[[test]]
name = "tool_choice"
path = "tests/tool_choice.rs"
[[test]]
name = "tool_choice_finish_reasons"
path = "tests/tool_choice_finish_reasons.rs"
[[bench]]
name = "kv_router_bench"
path = "benches/kv_router_bench.rs"
harness = false
required-features = ["kv-router-stress"]
[[bench]]
name = "request_trace_finish_metadata"
path = "benches/request_trace_finish_metadata.rs"
harness = false
required-features = ["request-trace-bench"]
[[bench]]
name = "tokenizer_dataset"
path = "benches/tokenizer_dataset.rs"
harness = false
[[bench]]
name = "tokenizer_simple"
path = "benches/tokenizer_simple.rs"
harness = false
[[bench]]
name = "transfer_context_v2"
path = "benches/transfer_context_v2.rs"
harness = false
required-features = [
"block-manager",
"testing-cuda",
]
[dependencies.aligned-vec]
version = "0.6.4"
optional = true
[dependencies.anyhow]
version = "1"
[dependencies.arc-swap]
version = "1.9.1"
[dependencies.async-nats]
version = "0.49.1"
features = ["service"]
[dependencies.async-stream]
version = "0.3"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "=0.8.4"
features = [
"macros",
"ws",
]
[dependencies.axum-server]
version = "0.7"
features = ["tls-rustls"]
[dependencies.base64]
version = "0.22"
[dependencies.bincode]
version = "2.0.1"
features = [
"serde",
"derive",
]
[dependencies.bitflags]
version = "2.4"
features = ["serde"]
[dependencies.blake3]
version = "1.8"
features = [
"mmap",
"rayon",
]
[dependencies.bs62]
version = "0.1"
[dependencies.bytemuck]
version = "1.22"
[dependencies.bytes]
version = "1.9"
[dependencies.chrono]
version = "0.4"
features = [
"alloc",
"std",
"clock",
"now",
"serde",
]
default-features = false
[dependencies.clap]
version = "4.5.49"
features = ["derive"]
optional = true
[dependencies.cudarc]
version = "=0.19.8"
features = [
"cuda-version-from-build-system",
"fallback-latest",
]
optional = true
[dependencies.dashmap]
version = "6.1"
[dependencies.derive-getters]
version = "0.5"
[dependencies.derive_builder]
version = "0.20"
[dependencies.dialoguer]
version = "0.11"
features = [
"editor",
"history",
]
default-features = false
[dependencies.dynamo-kv-router]
version = "1.4.0"
features = [
"metrics",
"runtime-protocols",
]
[dependencies.dynamo-memory]
version = "1.4.0"
[dependencies.dynamo-mocker]
version = "1.4.0"
features = ["zmq-events"]
[dependencies.dynamo-parsers]
version = "7.0.1"
[dependencies.dynamo-parsers-v2]
version = "0.1.23"
[dependencies.dynamo-protocols]
version = "=5.0.1"
[dependencies.dynamo-renderer]
version = "=4.0.0"
[dependencies.dynamo-rl]
version = "1.4.0"
[dependencies.dynamo-runtime]
version = "1.4.0"
[dependencies.dynamo-tokenizers]
version = "=1.5.4"
[dependencies.dynamo-tokens]
version = "1.4.0"
[dependencies.either]
version = "1.13"
features = ["serde"]
[dependencies.ffmpeg-next]
version = "8.1.0"
optional = true
[dependencies.flate2]
version = "1"
[dependencies.futures]
version = "0.3"
[dependencies.futures-util]
version = "0.3.32"
[dependencies.galil-seiferas]
version = "0.1"
[dependencies.hf-hub]
version = "0.4.2"
features = [
"tokio",
"rustls-tls",
"ureq",
]
default-features = false
[dependencies.image]
version = "0.25"
features = ["serde"]
[dependencies.indicatif]
version = "0.18.0"
optional = true
[dependencies.ipnet]
version = "2"
[dependencies.json-five]
version = "0.3"
[dependencies.libc]
version = "0.2"
[dependencies.llm-multimodal]
version = "=1.7.0"
optional = true
[dependencies.llm-tokenizer]
version = "=1.4.1"
optional = true
[dependencies.lru]
version = "0.16"
[dependencies.memfile]
version = "0.3.2"
optional = true
[dependencies.minijinja]
version = "2.21.0"
features = [
"loader",
"loop_controls",
"preserve_order",
]
[dependencies.modelexpress-client]
version = "0.5.0"
[dependencies.modelexpress-common]
version = "0.5.0"
[dependencies.moka]
version = "0.12"
features = ["future"]
[dependencies.ndarray]
version = "0.16"
[dependencies.nix]
version = "0.26"
optional = true
[dependencies.nixl-sys]
version = "=1.0.1"
optional = true
[dependencies.object_store]
version = "0.12.4"
features = [
"aws",
"gcp",
"azure",
"http",
]
[dependencies.offset-allocator]
version = "0.2"
[dependencies.oneshot]
version = "0.1.13"
features = [
"std",
"async",
]
[dependencies.opentelemetry]
version = "0.31.0"
features = [
"trace",
"logs",
]
[dependencies.opentelemetry-otlp]
version = "0.31.0"
features = [
"trace",
"logs",
"grpc-tonic",
"http-proto",
"reqwest-rustls",
]
[dependencies.opentelemetry_sdk]
version = "0.31.0"
features = [
"trace",
"logs",
"rt-tokio",
]
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.prometheus]
version = "0.14"
[dependencies.prost]
version = "0.13.5"
[dependencies.rand]
version = "0.9.2"
[dependencies.rayon]
version = "1"
[dependencies.reqwest]
version = "0.12.24"
features = [
"multipart",
"json",
"stream",
"rustls-tls",
]
default-features = false
[dependencies.rmp-serde]
version = "1.3"
[dependencies.rustls]
version = "0.23"
[dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.strum]
version = "0.27"
features = ["derive"]
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2.0.17"
[dependencies.tmq]
version = "0.5.0"
[dependencies.tokenizers]
version = "0.21.4"
features = [
"onig",
"esaxx_fast",
"rustls-tls",
]
default-features = false
[dependencies.tokio]
version = "=1.48.0"
features = ["full"]
[dependencies.tokio-rayon]
version = "2"
[dependencies.tokio-stream]
version = "0.1"
[dependencies.tokio-util]
version = "0.7.17"
features = [
"codec",
"net",
"rt",
"io-util",
]
[dependencies.tonic]
version = "0.13.1"
[dependencies.tower-http]
version = "0.6"
features = ["trace"]
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2.5"
features = ["serde"]
[dependencies.utoipa]
version = "5.3"
features = ["axum_extras"]
[dependencies.utoipa-swagger-ui]
version = "9.0"
features = ["axum"]
[dependencies.uuid]
version = "1.18.1"
features = [
"v4",
"serde",
]
[dependencies.validator]
version = "0.20.0"
features = ["derive"]
[dependencies.video-rs]
version = "0.11.0"
optional = true
[dependencies.xxhash-rust]
version = "0.8"
features = [
"xxh3",
"const_xxh3",
]
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.assert_matches]
version = "1.5"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.hf-hub]
version = "0.4.2"
default-features = false
[dev-dependencies.insta]
version = "1.41"
features = [
"glob",
"json",
"redactions",
"filters",
]
[dev-dependencies.lazy_static]
version = "1.4"
[dev-dependencies.mockito]
version = "1.7.0"
[dev-dependencies.modelexpress-client]
version = "0.5.0"
[dev-dependencies.modelexpress-common]
version = "0.5.0"
[dev-dependencies.reqwest]
version = "0.12.24"
features = [
"multipart",
"json",
"stream",
"rustls-tls",
]
default-features = false
[dev-dependencies.rstest]
version = "0.18.2"
[dev-dependencies.serial_test]
version = "3"
[dev-dependencies.temp-env]
version = "0.3.6"
features = ["async_closure"]
[dev-dependencies.tempfile]
version = "3.17.1"
[dev-dependencies.tokio]
version = "=1.48.0"
features = [
"full",
"test-util",
]
[dev-dependencies.tokio-tungstenite]
version = "0.26"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"local-time",
"json",
]
[build-dependencies.tonic-build]
version = "0.13.1"