llmrust 0.1.1

Unified Rust interface for 7 LLM providers (OpenAI, Anthropic, DeepSeek, Google Gemini, Ollama, Moonshot, OpenRouter) with HTTP proxy
Documentation
[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: LLM client only. No web-server dependencies pulled in.

default = []

# Enable the built-in OpenAI-compatible HTTP proxy server.

proxy = ["dep:axum", "dep:tower-http", "dep:bytes", "tokio/signal"]



[dependencies]

reqwest    = { version = "0.12", features = ["json", "stream"] }

# Only the tokio primitives the library itself needs.

# Downstream crates pick their own runtime features; examples use dev-dep below.

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"



# Optional: only compiled when the `proxy` feature is enabled.

axum       = { version = "0.7", optional = true }

tower-http = { version = "0.5", features = ["cors"], optional = true }

bytes      = { version = "1", optional = true }



[dev-dependencies]

# Examples and integration tests need the full runtime.

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"