mirror of
https://github.com/whit3rabbit/anyllm-proxy.git
synced 2026-09-22 00:00:50 +00:00
133 lines
4.6 KiB
TOML
133 lines
4.6 KiB
TOML
[package]
|
|
name = "anyllm_proxy"
|
|
description = "HTTP proxy translating Anthropic Messages API to OpenAI Chat Completions"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
|
|
# Package name stays anyllm_proxy (crates.io / `-p` selector), but emit the
|
|
# binary as anyllm-proxy so one hyphenated name flows through deb/brew/release.
|
|
[[bin]]
|
|
name = "anyllm-proxy"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
anyllm_translate = { path = "../translator", version = "0.16.2" }
|
|
anyllm_client = { path = "../client", version = "0.16.2" }
|
|
anyllm_batch_engine = { path = "../batch_engine", version = "0.16.2" }
|
|
anyllm_providers = { path = "../providers", version = "0.16.2", features = ["runtime-catalog"] }
|
|
anyllm_pxpipe = { path = "../pxpipe", version = "0.16.2" }
|
|
anyllm_rtk = { path = "../rtk", version = "0.16.2" }
|
|
anyllm_optimize_core = { path = "../optimizer/crates/optimize-core", version = "0.16.2" }
|
|
anyllm_optimize_passes = { path = "../optimizer/crates/optimize-passes", version = "0.16.2" }
|
|
# Always compiled for the model-artifact detect/download admin flow; the heavy ONNX
|
|
# scorer inference is gated behind the proxy's `optimizer-onnx` feature (below).
|
|
anyllm_optimize_scorer = { path = "../optimizer/crates/optimize-scorer", version = "0.16.2" }
|
|
axum = { version = "0.8", features = ["ws", "multipart"] }
|
|
tokio = { version = "1", features = ["full"] }
|
|
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "native-tls", "http2", "multipart"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
futures = "0.3"
|
|
tokio-stream = "0.1"
|
|
tower = "0.5"
|
|
url = "2"
|
|
tracing = "0.1"
|
|
tiktoken-rs = "0.9"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
|
|
uuid = { version = "1", features = ["v4"] }
|
|
toml = "1.0.7"
|
|
indexmap = { version = "2.13.0", features = ["serde"] }
|
|
bytes = "1.11.1"
|
|
subtle = "2"
|
|
sha2 = "0.10"
|
|
hmac = "0.12"
|
|
rusqlite = { version = "0.32", features = ["bundled"] }
|
|
httpdate = "1"
|
|
dashmap = "6"
|
|
getrandom = "0.3"
|
|
aws-sigv4 = { version = "1.4", features = ["sign-http"] }
|
|
aws-credential-types = "1.2"
|
|
aws-smithy-runtime-api = "1"
|
|
base64 = "0.22"
|
|
hex = "0.4"
|
|
moka = { version = "0.12", features = ["future", "sync"] }
|
|
serde_yaml = "0.9"
|
|
jsonwebtoken = "10"
|
|
ipnetwork = "0.20"
|
|
zeroize = "1"
|
|
crc32fast = "1"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
secrets_scanner = { version = "0.2.2", optional = true, default-features = false }
|
|
|
|
[features]
|
|
default = ["secrets-scanner"]
|
|
secrets-scanner = ["dep:secrets_scanner"]
|
|
## Enables BashTool and ReadFileTool in the builtin tool registry.
|
|
## These tools execute arbitrary shell commands and read arbitrary files as the
|
|
## proxy process user. Do NOT enable in production without sandboxing.
|
|
dangerous-builtin-tools = []
|
|
redis = ["dep:redis"]
|
|
qdrant = ["dep:qdrant-client"]
|
|
## Compile the LLMLingua-2 ONNX scorer into the proxy (opt-in; `ort` downloads an
|
|
## onnxruntime binary at build time). Without it, the optimizer live-mode uses the
|
|
## heuristic UniformScorer and the admin model-download UI reports "not compiled in".
|
|
optimizer-onnx = ["anyllm_optimize_scorer/onnx"]
|
|
otel = [
|
|
"opentelemetry",
|
|
"opentelemetry_sdk",
|
|
"opentelemetry-otlp",
|
|
"tracing-opentelemetry",
|
|
]
|
|
|
|
[dependencies.opentelemetry]
|
|
version = "0.32"
|
|
optional = true
|
|
|
|
[dependencies.opentelemetry_sdk]
|
|
version = "0.32"
|
|
optional = true
|
|
|
|
[dependencies.opentelemetry-otlp]
|
|
version = "0.32"
|
|
default-features = false
|
|
features = ["trace", "http-proto", "reqwest-client"]
|
|
optional = true
|
|
|
|
[dependencies.tracing-opentelemetry]
|
|
version = "0.33"
|
|
optional = true
|
|
|
|
[dependencies.redis]
|
|
version = "0.27"
|
|
features = ["tokio-comp", "connection-manager"]
|
|
optional = true
|
|
|
|
[dependencies.qdrant-client]
|
|
version = "1"
|
|
optional = true
|
|
|
|
[dev-dependencies]
|
|
pretty_assertions = "1"
|
|
reqwest = { version = "0.12", default-features = false, features = ["json", "native-tls", "multipart"] }
|
|
tokio = { version = "1", features = ["full"] }
|
|
tempfile = "3"
|
|
|
|
[package.metadata.deb]
|
|
name = "anyllm-proxy"
|
|
section = "net"
|
|
priority = "optional"
|
|
depends = "libc6 (>= 2.31)"
|
|
maintainer-scripts = "../../packaging"
|
|
conf-files = ["/etc/default/anyllm-proxy"]
|
|
extended-description = """\
|
|
HTTP proxy that accepts Anthropic Messages API and OpenAI Chat Completions \
|
|
requests, translates between formats, and forwards to any supported backend. \
|
|
Supports streaming SSE, tool calling, virtual key management, and cost tracking."""
|
|
assets = [
|
|
["target/release/anyllm-proxy", "/usr/bin/anyllm-proxy", "755"],
|
|
["../../packaging/anyllm-proxy.service", "/lib/systemd/system/anyllm-proxy.service", "644"],
|
|
["../../packaging/anyllm-proxy.default", "/etc/default/anyllm-proxy", "640"],
|
|
]
|