Fast, simple, and high-performance web framework for Rust, built on top of Tokio and hyper.
Volga is designed to make building HTTP services straightforward and explicit, while keeping performance predictable and overhead minimal.
💡 Status: Volga is currently in preview.
The public API may change while core abstractions are being finalized.
Tutorial | API Docs | Examples | Roadmap
Volga focuses on clarity and control without sacrificing performance.
It avoids hidden behavior and framework-driven magic. Macros are used sparingly and primarily to reduce boilerplate. Handlers, middleware, and routing behave exactly as they look in code.
Volga is a good fit if you:
- Want simple and readable handler signatures
- Care about predictable performance and low overhead
- Need fine-grained control over the HTTP request/response lifecycle
- Work with streaming, WebSockets, or long-lived connections
- Prefer explicit APIs over code generation
- HTTP/1 and HTTP/2 support
- Explicit and robust routing
- Composable async middlewares
- Dependency Injection without derive macros
- Typed request extraction
- WebSockets and WebSocket-over-HTTP/2
- Streaming-friendly HTTP
- End-to-end OAuth 2.1/OIDC support
- Full Tokio compatibility
- Runs on stable Rust 1.90+
[dependencies]
volga = "0.9.6"
tokio = { version = "1", features = ["full"] }use volga::{App, ok};
#[tokio::main]
async fn main() -> std::io::Result<()> {
let mut app = App::new();
app.map_get("/hello/{name}", async |name: String| {
ok!("Hello {name}!")
});
app.run().await
}This example demonstrates:
- typed path parameter extraction
- async request handlers
- minimal setup with zero boilerplate
More advanced examples (middleware, DI, auth, rate limiting) can be found in the documentation and here.
Volga is benchmarked using a minimal plaintext endpoint to measure raw request handling to measure baseline HTTP throughput.
The benchmark harness is available here: https://github.com/RomanEmreis/volga-benchmark
Tested on a single machine:
Platform: Apple Silicon MacBook Pro
Runtime: Linux containers (Colima)
Running 30s test @ http://volga:7878/plaintext
8 threads and 512 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 539.89us 3.00ms 213.60ms 99.94%
Req/Sec 131.04k 14.14k 296.06k 95.76%
31080913 requests in 29.83s, 3.76GB read
Socket errors: connect 0, read 0, write 0, timeout 987
Requests/sec: 1,041,952.40
Transfer/sec: 129.18MB
⚠️ Benchmark results are provided for reference only. Actual performance depends on workload, middleware, and handler logic.
Volga is licensed under the MIT License. Contributions welcome!