35 releases (4 breaking)
new 0.5.5 | Mar 21, 2025 |
---|---|
0.5.4 | Feb 26, 2025 |
0.4.9 | Jan 23, 2025 |
0.4.5 | Dec 28, 2024 |
0.1.11 | Oct 26, 2024 |
#201 in HTTP server
380 downloads per month
475KB
11K
SLoC
Volga
Fast, Easy, and very flexible Web Framework for Rust based on Tokio runtime and hyper for fun and painless microservices crafting.
Tutorial | API Docs | Examples
Features
- Supports HTTP/1 and HTTP/2
- Robust routing
- Custom middlewares
- Dependency Injection
- WebSockets and WebTransport
- Full Tokio compatibility
- Runs on stable Rust 1.80+
Getting Started
Dependencies
[dependencies]
volga = "0.5.5"
tokio = { version = "1", features = ["full"] }
Simple request handler
use volga::{App, ok};
#[tokio::main]
async fn main() -> std::io::Result<()> {
// Start the server
let mut app = App::new();
// Example of request handler
app.map_get("/hello/{name}", async |name: String| {
ok!("Hello {name}!")
});
app.run().await
}
Performance
Tested a single instance on a laptop using 1 thread and 200 connections and under configuration:
OS: Arch Linux
CPU: Intel i7-8665U (8) @ 4.800GHz
RAM: 31686MiB
Results
Running 10s test @ http://127.0.0.1:7878/hello
1 threads and 200 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 578.90us 206.77us 5.77ms 79.81%
Req/Sec 184.72k 9.54k 200.74k 77.00%
1837693 requests in 10.08s, 206.80MB read
Requests/sec: 182380.80
Transfer/sec: 20.52MB
Dependencies
~4–18MB
~288K SLoC