# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[package]
name = "dynamo-run"
version.workspace = true
edition.workspace = true
authors.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true

[features]
# Build with `--no-default-features` to disable these defaults
default = ["mistralrs", "vllm", "sglang"]
mistralrs = ["dynamo-llm/mistralrs"]
sglang = ["dynamo-llm/sglang", "dep:netlink-packet-route", "dep:rtnetlink"]
vllm = ["dynamo-llm/vllm", "dep:netlink-packet-route", "dep:rtnetlink"]
# We don't include llamacpp by default until we figure out when it needs external libraries
llamacpp = ["dynamo-llm/llamacpp"]
trtllm = ["dynamo-llm/trtllm"]
python = ["dynamo-llm/python"]
cuda = ["dynamo-llm/cuda"]
metal = ["dynamo-llm/metal"]
vulkan = ["dynamo-llm/vulkan"]

[dependencies]
dynamo-llm = { workspace = true }
dynamo-runtime = { workspace = true }

anyhow = { workspace = true }
async-stream = { workspace = true }
async-trait = { workspace = true }
futures = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true }
tokio-util = { workspace = true }
tracing = { workspace = true }

async-openai = { version = "0.27.2" }
hf-hub = { version = "0.4.2", default-features = false, features = ["tokio", "rustls-tls"] }
clap = { version = "4.5", features = ["derive", "env"] }
dialoguer = { version = "0.11", default-features = false, features = ["editor", "history"] }
futures-util = { version = "0.3" }
humantime = "2.2.0"
tracing-subscriber = { version = "0.3", features = ["env-filter", "local-time", "json"] }

[target.x86_64-unknown-linux-gnu.dependencies]
netlink-packet-route = { version = "0.19", optional = true }
rtnetlink = { version = "0.14", optional = true }
