[package]
name = "rotom"
version = "1.1.2"
edition = "2024"
rust-version = "1.86"
description = "OpenAI- and Anthropic-compatible local API gateway backed by OAuth providers."
license = "LGPL-3.0-only"
readme = "README.md"
repository = "https://github.com/RyanKung/rotom"
homepage = "https://github.com/RyanKung/rotom"
documentation = "https://docs.rs/rotom"
keywords = ["openai", "anthropic", "codex", "claude-code", "gateway"]
categories = ["command-line-utilities", "api-bindings", "web-programming::http-server"]
default-run = "rotom"
include = ["build.rs", "src/**/*", "README.md", "LICENSE", "Cargo.toml", "Cargo.lock"]

[[bin]]
name = "rotom"
path = "src/main.rs"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
async-stream = "0.3"
axum = "0.8"
base64 = "0.22"
bytes = "1"
chrono = { version = "0.4", features = ["clock"] }
clap = { version = "4", default-features = false, features = ["derive", "env", "error-context", "help", "std", "suggestions", "usage"] }
futures-util = "0.3"
hex = "0.4"
rand = "0.9"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "stream"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha2 = "0.10"
thiserror = "2"
tokio = { version = "1", features = ["fs", "macros", "net", "rt-multi-thread", "signal", "sync", "time"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["fmt"] }
url = "2"

[dev-dependencies]
tower = "0.5"
