[package]
name = "arcly-http"
version = "0.2.2"
edition = "2021"
rust-version = "1.85"
description = "Enterprise-grade NestJS-inspired web framework on axum: zero-lock DI, declarative controllers, multi-tenant data routing, transactional outbox, ABAC, and a self-documenting OpenAPI surface"
license = "MIT"
repository = "https://gitlab.com/arcly/arcly-http/arcly-http"
documentation = "https://docs.rs/arcly-http"
readme = "../README.md"
keywords = ["web", "framework", "nestjs", "axum", "enterprise"]
categories = ["web-programming", "web-programming::http-server"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
arcly-http-macros = { path = "../arcly-http-macros", version = "0.2.2" }
axum = { version = "0.8", features = ["matched-path", "ws"] }
tokio = { version = "1.38", features = ["rt-multi-thread", "macros", "net", "signal", "sync", "time"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bytes = "1.6"
smallvec = "1.13"
smol_str = "0.2"
inventory = "0.3"
futures = "0.3"
http = "1.1"
serde_urlencoded = "0.7"
validator = { version = "0.18", features = ["derive"] }
schemars = "0.8"
dashmap = "6"
once_cell = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
metrics = "0.23"
metrics-exporter-prometheus = "0.15"
opentelemetry = { version = "0.27", features = ["trace"] }
opentelemetry_sdk = { version = "0.27", features = ["rt-tokio"] }
opentelemetry-otlp = { version = "0.27", features = ["trace", "grpc-tonic"] }
opentelemetry-semantic-conventions = "0.27"
jsonwebtoken = "9"
arc-swap = "1"
secrecy = "0.8"
sqlx = { version = "0.8", optional = true, default-features = false, features = ["any", "runtime-tokio"] }
sea-orm = { version = "1", optional = true, default-features = false, features = ["runtime-tokio-rustls"] }
diesel = { version = "2", optional = true, default-features = false, features = ["r2d2"] }
r2d2 = { version = "0.8", optional = true }
hmac = "0.12"
sha2 = "0.10"
base64 = "0.22"
aes-gcm = "0.10"
[features]
default = []
db-sqlx = ["dep:sqlx"]
db-seaorm = ["dep:sea-orm"]
db-diesel = ["dep:diesel", "dep:r2d2"]
db-sqlx-postgres = ["db-sqlx", "sqlx/postgres"]
db-sqlx-mysql = ["db-sqlx", "sqlx/mysql"]
db-sqlx-sqlite = ["db-sqlx", "sqlx/sqlite"]
db-seaorm-postgres = ["db-seaorm", "sea-orm/sqlx-postgres"]
db-seaorm-sqlite = ["db-seaorm", "sea-orm/sqlx-sqlite"]
db-diesel-postgres = ["db-diesel", "diesel/postgres"]
db-diesel-sqlite = ["db-diesel", "diesel/sqlite", "diesel/returning_clauses_for_sqlite_3_35"]
[dev-dependencies]
reqwest = { version = "0.12", default-features = false, features = ["json"] }