[package]
name = "tabby"
version = "0.2.2-rc.1"
edition = "2021"

[dependencies]
ctranslate2-bindings = { path = "../ctranslate2-bindings" }
tabby-common = { path = "../tabby-common" }
tabby-scheduler = { path = "../tabby-scheduler", optional = true }
tabby-download = { path = "../tabby-download" }
tabby-inference = { path = "../tabby-inference" }
axum = "0.6"
hyper = { version = "0.14", features = ["full"] }
tokio = { workspace = true, features = ["full"] }
tower = "0.4"
utoipa = { version = "3.3", features = ["axum_extras", "preserve_order"] }
utoipa-swagger-ui = { version = "3.1", features = ["axum"] }
serde = { workspace = true }
serdeconv = { workspace = true }
serde_json = { workspace = true }
tower-http = { version = "0.4.0", features = ["cors"] }
clap = { version = "4.3.0", features = ["derive"] }
lazy_static = { workspace = true }
rust-embed = "8.0.0"
mime_guess = "2.0.4"
strum = { version = "0.24", features = ["derive"] }
strfmt = "0.2.4"
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
opentelemetry = { version = "0.18.0", features = ["rt-tokio"] }
opentelemetry-otlp = "0.11.0"
axum-tracing-opentelemetry = "0.10.0"
tracing-opentelemetry = "0.18.0"
tantivy = { workspace = true }
anyhow = { workspace = true }
sysinfo = "0.29.8"
nvml-wrapper = "0.9.0"
http-api-bindings = { path = "../http-api-bindings" }
futures = { workspace = true }
async-stream = { workspace = true }
axum-streams = { version = "0.9.1", features = ["json"] }
minijinja = { version = "1.0.8", features = ["loader"] }

[target.'cfg(all(target_os="macos", target_arch="aarch64"))'.dependencies]
llama-cpp-bindings = { path = "../llama-cpp-bindings" }

[dependencies.uuid]
version = "1.3.3"
features = [
    "v4",                # Lets you generate random UUIDs
    "fast-rng",          # Use a faster (but still sufficiently random) RNG
    "macro-diagnostics", # Enable better diagnostics for compile-time UUIDs
]

[features]
default = ["scheduler"]
link_shared = ["ctranslate2-bindings/link_shared"]
scheduler = ["tabby-scheduler"]

[build-dependencies]
vergen = { version = "8.0.0", features = ["build", "git", "gitcl"] }
