arbit 0.18.0

Security proxy for MCP (Model Context Protocol) — auth, rate limiting, payload filtering, and audit logging between AI agents and MCP servers
Documentation
[package]
name = "arbit"
version = "0.18.0"
edition = "2024"
description = "Security proxy for MCP (Model Context Protocol) — auth, rate limiting, payload filtering, and audit logging between AI agents and MCP servers"
repository = "https://github.com/nfvelten/arbit"
license = "MIT"
keywords = ["mcp", "proxy", "security", "ai", "gateway"]
categories = ["network-programming", "authentication"]

[lib]
name = "arbit"
path = "src/lib.rs"

[[bin]]
name = "dummy-server"
path = "src/bin/dummy_server.rs"

[[bin]]
name = "arbit"
path = "src/bin/arbit.rs"

[dependencies]
clap = { version = "4", features = ["derive"] }
axum = "0.8"
axum-server = { version = "0.7", features = ["tls-rustls"] }
tokio = { version = "1", features = ["full"] }
tokio-stream = "0.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
regex = "1"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "stream"] }
async-trait = "0.1"
anyhow = "1"
rusqlite = { version = "0.31", features = ["bundled"] }
uuid = { version = "1", features = ["v4"] }
prometheus = "0.14"
futures-util = "0.3"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
tracing-opentelemetry = "0.27"
opentelemetry = { version = "0.26", features = ["trace"] }
opentelemetry_sdk = { version = "0.26", features = ["rt-tokio"] }
opentelemetry-otlp = { version = "0.26", features = ["trace", "grpc-tonic"] }
jsonwebtoken = { version = "10", features = ["rust_crypto"] }
subtle = "2"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
base64 = "0.22"
percent-encoding = "2"
unicode-normalization = "0.1"
jsonschema = { version = "0.18", default-features = false }
sha2 = "0.10"
hex = "0.4"
which = "7"
lru = "0.16.3"
regorus = "0.2"
tower = "0.5"
tokio-rustls = "0.26"
rustls = { version = "0.23", features = ["ring"] }
rustls-pemfile = "2"
x509-parser = "0.16"

[dev-dependencies]
tokio = { version = "1", features = ["full", "test-util"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
axum = "0.8"
serde_json = "1"
futures-util = "0.3"
rusqlite = { version = "0.31", features = ["bundled"] }
tempfile = "3"