[package]
name = "anyllm_client"
description = "Async HTTP client for Anthropic-to-OpenAI translation with retry, SSRF protection, and SSE streaming"
version = "0.10.0"
edition.workspace = true
license.workspace = true
repository.workspace = true
categories = ["api-bindings", "web-programming::http-client"]
keywords = ["anthropic", "openai", "translation", "llm", "client"]

[features]
default = ["ssrf-protection", "native-tls"]
ssrf-protection = []
# TLS backend — at least one must be enabled or the crate will fail to compile
# with an actionable error message (see lib.rs).
native-tls = ["reqwest/native-tls"]
rustls = ["reqwest/rustls-tls-native-roots"]

[dependencies]
anyllm_translate = { path = "../translator", version = "0.10.0" }
# TLS features are controlled via the native-tls / rustls feature flags above.
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "http2"] }
tokio = { version = "1", features = ["rt", "sync", "time"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tracing = "0.1"
bytes = "1"
futures = "0.3"
httpdate = "1"
thiserror = "2"
pin-project-lite = "0.2"
zeroize = "1"

[dev-dependencies]
tokio = { version = "1", features = ["full"] }
pretty_assertions = "1"
