[package]
edition = "2021"
name = "llmshim"
version = "0.1.18"
build = false
exclude = [
"clients/",
"api/",
".claude/",
"Dockerfile",
".dockerignore",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Blazing fast LLM API translation layer in pure Rust"
homepage = "https://github.com/sanjay920/llmshim"
readme = "README.md"
keywords = [
"llm",
"openai",
"anthropic",
"gemini",
"ai",
]
categories = [
"api-bindings",
"web-programming",
]
license = "MIT"
repository = "https://github.com/sanjay920/llmshim"
[features]
default = []
proxy = [
"dep:axum",
"dep:tower",
"dep:tower-http",
"dep:async-stream",
]
[lib]
name = "llmshim"
path = "src/lib.rs"
[[bin]]
name = "llmshim"
path = "src/main.rs"
[[example]]
name = "bench"
path = "benchmarks/bench.rs"
[[example]]
name = "chat"
path = "examples/chat.rs"
[[example]]
name = "stream"
path = "examples/stream.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "integration_fallback"
path = "tests/integration_fallback.rs"
[[test]]
name = "integration_gemini"
path = "tests/integration_gemini.rs"
[[test]]
name = "integration_gemini_tools"
path = "tests/integration_gemini_tools.rs"
[[test]]
name = "integration_long_context"
path = "tests/integration_long_context.rs"
[[test]]
name = "integration_multimodel"
path = "tests/integration_multimodel.rs"
[[test]]
name = "integration_proxy"
path = "tests/integration_proxy.rs"
[[test]]
name = "integration_thinking"
path = "tests/integration_thinking.rs"
[[test]]
name = "integration_tool_roundtrip"
path = "tests/integration_tool_roundtrip.rs"
[[test]]
name = "integration_vision"
path = "tests/integration_vision.rs"
[[test]]
name = "unit_anthropic"
path = "tests/unit_anthropic.rs"
[[test]]
name = "unit_fallback"
path = "tests/unit_fallback.rs"
[[test]]
name = "unit_gemini"
path = "tests/unit_gemini.rs"
[[test]]
name = "unit_log"
path = "tests/unit_log.rs"
[[test]]
name = "unit_models"
path = "tests/unit_models.rs"
[[test]]
name = "unit_multimodel"
path = "tests/unit_multimodel.rs"
[[test]]
name = "unit_openai"
path = "tests/unit_openai.rs"
[[test]]
name = "unit_proxy"
path = "tests/unit_proxy.rs"
[[test]]
name = "unit_proxy_convert"
path = "tests/unit_proxy_convert.rs"
[[test]]
name = "unit_router"
path = "tests/unit_router.rs"
[[test]]
name = "unit_sse"
path = "tests/unit_sse.rs"
[[test]]
name = "unit_tools"
path = "tests/unit_tools.rs"
[[test]]
name = "unit_vision"
path = "tests/unit_vision.rs"
[[test]]
name = "unit_xai"
path = "tests/unit_xai.rs"
[dependencies.async-stream]
version = "0.3"
optional = true
[dependencies.axum]
version = "0.8"
features = ["json"]
optional = true
[dependencies.bytes]
version = "1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.crossterm]
version = "0.28"
[dependencies.dirs]
version = "6"
[dependencies.eventsource-stream]
version = "0.2"
[dependencies.futures]
version = "0.3"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
"rustls-tls",
"http2",
"gzip",
"brotli",
"zstd",
"deflate",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
[dependencies.toml]
version = "0.8"
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.tower-http]
version = "0.6"
features = ["cors"]
optional = true
[dev-dependencies.tokio-test]
version = "0.4"