[package]
name = "llmshim"
version = "0.1.21"
edition = "2021"
description = "Blazing fast LLM API translation layer in pure Rust"
license = "MIT"
repository = "https://github.com/sanjay920/llmshim"
homepage = "https://github.com/sanjay920/llmshim"
keywords = ["llm", "openai", "anthropic", "gemini", "ai"]
categories = ["api-bindings", "web-programming"]
exclude = ["clients/", "api/", ".claude/", "Dockerfile", ".dockerignore"]

[features]
default = []
proxy = ["dep:axum", "dep:tower", "dep:tower-http", "dep:async-stream"]

[dependencies]
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls", "http2", "gzip", "brotli", "zstd", "deflate"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
futures = "0.3"
thiserror = "2"
bytes = "1"
tokio-stream = "0.1"
eventsource-stream = "0.2"
chrono = { version = "0.4", features = ["serde"] }
crossterm = "0.28"
toml = "0.8"
dirs = "6"

# Proxy dependencies (feature-gated)
axum = { version = "0.8", features = ["json"], optional = true }
tower = { version = "0.5", optional = true }
tower-http = { version = "0.6", features = ["cors"], optional = true }
async-stream = { version = "0.3", optional = true }

[dev-dependencies]
tokio-test = "0.4"

[[bin]]
name = "llmshim"
path = "src/main.rs"

[[example]]
name = "chat"
path = "examples/chat.rs"

[[example]]
name = "stream"
path = "examples/stream.rs"

[[example]]
name = "bench"
path = "benchmarks/bench.rs"
