arcly-http-core 0.6.1

Foundation crate for arcly-http: zero-lock DI engine, HTTP boundary, unified request pipeline, auth, resilience, observability, and OpenAPI. Use the `arcly-http` facade instead of depending on this directly.
Documentation
[package]
name = "arcly-http-core"
version = "0.6.1"
edition = "2021"
rust-version = "1.85"
description = "Foundation crate for arcly-http: zero-lock DI engine, HTTP boundary, unified request pipeline, auth, resilience, observability, and OpenAPI. Use the `arcly-http` facade instead of depending on this directly."
license = "MIT"
repository = "https://gitlab.com/arcly/arcly-http/arcly-http"
documentation = "https://docs.rs/arcly-http-core"
keywords = ["web", "framework", "nestjs", "axum", "enterprise"]
categories = ["web-programming", "web-programming::http-server"]

[dependencies]
arcly-http-macros = { path = "../arcly-http-macros", version = "0.6.1" }
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"
flate2 = "1.0"
multer = "3"
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"

# Structured logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }

# Prometheus metrics
metrics = "0.23"
metrics-exporter-prometheus = "0.15"

# OpenTelemetry (always-on)
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"

# JWT auth
jsonwebtoken = "9"

# Secrets rotation
arc-swap = "1"
secrecy  = "0.8"

# Cookie signing (HMAC-SHA256)
hmac   = "0.12"
sha2   = "0.10"
base64 = "0.22"