[package]
name = "llm-cascade"
version = "0.1.2"
edition = "2024"
rust-version = "1.87"
description = "Resilient cascading LLM inference with automatic failover across multiple providers"
license = "MIT"
repository = "https://github.com/paluigi/llm-cascade"
documentation = "https://docs.rs/llm-cascade"
readme = "README.md"
keywords = ["llm", "cascade", "failover", "openai", "anthropic"]
categories = ["asynchronous", "web-programming::http-client"]
exclude = [".claude/", ".kilo/"]

[lib]
path = "src/lib.rs"

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

[features]
default = ["keyring"]
keyring = ["dep:keyring"]

[dependencies]
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.13", features = ["json"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "1"
rusqlite = { version = "0.39", features = ["bundled"] }
keyring = { version = "3", features = ["sync-secret-service"], optional = true }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
chrono = { version = "0.4", features = ["serde"] }
clap = { version = "4", features = ["derive"] }
thiserror = "2"
async-trait = "0.1"
rpassword = "7"
