RustBlaze pairs a zero-cost async core with an ergonomic, type-safe routing API. Build production HTTP services that scale — without fighting the borrow checker.
# Add it to your project $ cargo add rustblaze use rustblaze::{App, get}; async fn hello() -> &'static str { "Hello from RustBlaze" } #[rustblaze::main] async fn main() { App::new() .route("/", get(hello)) .listen("0.0.0.0:8080") .await; }
Everything you need to ship fast HTTP services, nothing you don't.
Built on Tokio with no runtime overhead. Handlers compile down to tight state machines.
Extractors validated at compile time. If it builds, your request handling is sound.
Drop in any Tower middleware — tracing, rate-limiting, auth — with a single line.
Under 600 KB stripped. Cold-starts in milliseconds — ideal for edge & serverless.
Async streams, backpressure-aware, no extra crates required.
In-process test client, no sockets needed. Assert on responses directly.
From zero to a running server in two commands.
# 1. create a project and add the dependency $ cargo new my-api && cd my-api $ cargo add rustblaze --features full # 2. run it $ cargo run Compiling my-api v0.1.0 Running `target/debug/my-api` rustblaze: listening on http://0.0.0.0:8080
Composable, explicit, and easy to read.
use rustblaze::{post, Json}; async fn create(Json(u): Json<User>) -> Json<User> { Json(db::insert(u).await) }
let app = App::new() .route("/me", get(profile)) .layer(trace()) .layer(cors()) .with_state(pool);
Single node, 64 connections, plaintext (TechEmpower-style).