[package]
name = "liter-llm-cli"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
description = "CLI for liter-llm — start an OpenAI-compatible proxy server or MCP tool server."
keywords = ["llm", "proxy", "cli", "openai", "xberg"]

[[bin]]
name = "liter-llm"
path = "src/main.rs"

[features]
# OTel export bridge — forwarded to the proxy/core otel feature chain.
otel = ["liter-llm-proxy/otel"]

# etcd-backed config watch — enables `--etcd-endpoint` at runtime.
# Off by default; avoids the transitive `protoc`/`prost-build` requirement.
etcd-watch = ["liter-llm-proxy/etcd-watch"]

# Global allocator selection — at most one should be enabled.
# If neither is enabled, the system allocator (the Rust default) is used.
# `mimalloc` and `jemalloc` are mutually exclusive; enabling both is a
# compile-time configuration error caught by the allocator module.
mimalloc = ["dep:mimalloc"]
jemalloc = ["dep:tikv-jemallocator"]

default = []

[dependencies]
arc-swap = { workspace = true }
axum = { workspace = true }
clap = { workspace = true }
liter-llm = { path = "../liter-llm", version = "1.9.0-rc.1" }
liter-llm-proxy = { path = "../liter-llm-proxy", version = "1.9.0-rc.1" }
mimalloc = { workspace = true, optional = true }
rmcp = { workspace = true }
secrecy = { workspace = true }
tikv-jemallocator = { workspace = true, optional = true }
tokio = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
url = { workspace = true }

[lints]
workspace = true
