# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "llmshim"
version = "0.1.21"
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_fast_mode"
path = "tests/unit_fast_mode.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"
