[package] name = "raahi" version = "0.5.1" edition = "2024" description = "A fast, self-hosted reverse proxy and API gateway" license = "GPL-3.0-only" homepage = "https://raahi.sarat.dev" documentation = "https://raahi.sarat.dev" repository = "https://github.com/iamd3vil/raahi" readme = "README.md" keywords = ["reverse-proxy", "api-gateway", "load-balancer", "pingora", "acme"] categories = ["web-programming::http-server"] default-run = "raahi" [[bin]] name = "raahi" path = "src/main.rs" [dependencies] raahi-core = { workspace = true } raahi-store = { workspace = true } raahi-proxy = { workspace = true } raahi-api = { workspace = true } raahi-acme = { workspace = true } raahi-discovery = { workspace = true } pingora = { workspace = true } tokio = { workspace = true } clap = { workspace = true } anyhow = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true } serde_json = { workspace = true } reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Global allocator: glibc malloc's arena lock was ~15% of CPU under load # (profiled 2026-08; __lll_lock_*_private futex contention across workers). mimalloc = "0.1" [workspace] members = ["crates/*"] [workspace.package] edition = "2024" version = "0.5.1" license = "GPL-3.0-only" homepage = "https://raahi.sarat.dev" repository = "https://github.com/iamd3vil/raahi" [workspace.dependencies] raahi-core = { path = "crates/raahi-core" } raahi-store = { path = "crates/raahi-store" } raahi-proxy = { path = "crates/raahi-proxy" } raahi-api = { path = "crates/raahi-api" } raahi-acme = { path = "crates/raahi-acme" } raahi-discovery = { path = "crates/raahi-discovery" } pingora = { version = "0.9.0", default-features = false, features = ["proxy", "rustls"] } pingora-limits = "0.9.0" tokio = { version = "1", features = ["full"] } async-trait = "0.1" arc-swap = "1" serde = { version = "1", features = ["derive"] } serde_json = "1" anyhow = "1" thiserror = "2" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } clap = { version = "4", features = ["derive", "env"] } sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "sqlite", "macros", "migrate", "json", "chrono"] } chrono = { version = "0.4", features = ["serde"] } axum = { version = "0.8", features = ["macros"] } tower = "0.5" tower-http = { version = "0.6", features = ["fs", "trace", "cors"] } mime_guess = "2" futures = "0.3" bcrypt = "0.17" rcgen = "0.14" [profile.release] opt-level = 3 lto = "fat" codegen-units = 1