llmshim 0.7.0

Blazing fast LLM API translation layer in pure Rust
Documentation
[package]
name = "llmshim"
version = "0.7.0"
edition = "2021"
description = "Blazing fast LLM API translation layer in pure Rust"
license = "MIT OR Apache-2.0"
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", "gateway-test-ui.html"]

[features]
default = ["signature-introspection"]
signature-introspection = []
proxy = ["dep:axum", "dep:tower", "dep:tower-http", "dep:async-stream", "dep:async-trait"]
# Experimental priority-queue gateway. Reuses the proxy's RateLimiter/Backpressure.
gateway = ["proxy"]
# Gateway + Redis-backed distributed queue & response bus (cross-instance fleet).
gateway-redis = ["gateway", "redis-coordination"]
# Opt-in distributed rate-limit coordination via Redis. Keeps the default proxy
# binary lean — redis is only pulled in when this feature is explicitly enabled.
redis-coordination = ["proxy", "dep:redis"]

[dependencies]
llmshim-catalog = { version = "0.1.0", path = "crates/llmshim-catalog" }
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"
sha2 = "0.10"
uuid = { version = "1", features = ["v4"] }
jsonschema = { version = "0.46", default-features = false }
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"
base64 = "0.22"
tempfile = "3"
fs2 = "0.4"

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

# Distributed rate-limit coordination (feature: redis-coordination, opt-in)
redis = { version = "1", default-features = false, features = ["tokio-rustls-comp", "connection-manager", "script"], optional = true }

[dev-dependencies]
syn = { version = "2", features = ["full", "visit"] }
tokio-test = "0.4"
mockito = "1"

[[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"

[[example]]
name = "loadtest"
path = "benchmarks/loadtest.rs"
required-features = ["proxy"]

[[example]]
name = "gateway_loadtest"
path = "benchmarks/gateway_loadtest.rs"
required-features = ["gateway"]

[workspace]
members = ["crates/llmshim-catalog"]
exclude = ["clients/python"]
resolver = "2"