[package]
name = "vex-api"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "Industry-grade HTTP API gateway for VEX Protocol"
readme = "README.md"
keywords = ["ai", "agents", "api", "http", "gateway"]
categories = ["web-programming::http-server", "asynchronous"]
[dependencies]
vex-core = { workspace = true }
vex-adversarial = { workspace = true }
vex-llm = { workspace = true }
vex-persist = { workspace = true }
vex-queue = { workspace = true }
vex-runtime = { workspace = true }
vex-router = { workspace = true }
tokio = { workspace = true }
async-trait = { workspace = true }
axum = { version = "0.8", features = ["macros"] }
tower = { version = "0.5", features = ["full"] }
tower-http = { version = "0.6", features = ["cors", "trace", "timeout", "limit", "compression-gzip"] }
tokio-rustls = "0.26"
rustls-pki-types = { version = "1", features = ["std"] }
hyper = { version = "1", features = ["server", "http1", "http2"] }
hyper-util = { version = "0.1", features = ["tokio"] }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
jsonwebtoken = "9"
argon2 = "0.5"
base64 = "0.22"
zeroize = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
rand = { workspace = true }
http-body-util = "0.1"
governor = "0.8"
tower_governor = "0.5"
regex = "1.10"
utoipa = { version = "5", features = ["axum_extras", "chrono", "uuid"] }
utoipa-axum = "0.2"
utoipa-swagger-ui = { version = "9", features = ["axum"] }
moka = { version = "0.12.13", features = ["future"] }