[package]
name = "llmrust"
version = "0.1.1"
edition = "2021"
rust-version = "1.86"
description = "Unified Rust interface for 7 LLM providers (OpenAI, Anthropic, DeepSeek, Google Gemini, Ollama, Moonshot, OpenRouter) with HTTP proxy"
license = "MIT OR Apache-2.0"
repository = "https://github.com/llmrust/llmrust"
readme = "README.md"
keywords = ["llm", "openai", "anthropic", "ai", "gemini"]
categories = ["api-bindings", "asynchronous", "web-programming::http-client"]
documentation = "https://docs.rs/llmrust"
exclude = [".github/", "images/"]
[features]
default = []
proxy = ["dep:axum", "dep:tower-http", "dep:bytes", "tokio/signal"]
[dependencies]
reqwest = { version = "0.12", features = ["json", "stream"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
async-trait = "0.1"
futures = "0.3"
thiserror = "2"
fastrand = "2"
tracing = "0.1"
axum = { version = "0.7", optional = true }
tower-http = { version = "0.5", features = ["cors"], optional = true }
bytes = { version = "1", optional = true }
[dev-dependencies]
tokio = { version = "1", features = ["full", "test-util"] }
tower = { version = "0.5", features = ["util"] }
[[example]]
name = "demo"
path = "examples/demo.rs"
[[example]]
name = "chat"
path = "examples/chat.rs"
[[example]]
name = "multiturn"
path = "examples/multiturn.rs"
[[example]]
name = "retry_e2e"
path = "examples/retry_e2e.rs"
[[example]]
name = "proxy_server"
path = "examples/proxy_server.rs"
required-features = ["proxy"]
[[example]]
name = "tool_calling"
path = "examples/tool_calling.rs"
[[example]]
name = "multimodal"
path = "examples/multimodal.rs"
[[example]]
name = "embeddings"
path = "examples/embeddings.rs"
[[example]]
name = "router"
path = "examples/router.rs"
[[example]]
name = "e2e_openai_compat"
path = "examples/e2e_openai_compat.rs"
[[example]]
name = "e2e_anthropic_compat"
path = "examples/e2e_anthropic_compat.rs"