Features
- Simple & Powerful - Minimal boilerplate. If you can write a function, you can write a handler.
- HTTP/1, HTTP/2 & HTTP/3 - Full protocol support out of the box.
- Flexible Routing - Tree-based routing with middleware support at any level.
- Auto TLS - ACME integration for automatic certificate management.
- OpenAPI - First-class OpenAPI support with auto-generated documentation.
- WebSocket & WebTransport - Real-time communication built-in.
- Built on Hyper & Tokio - Production-ready async foundation.
Quick Start
Create a new project:
&&
Write your first app in src/main.rs:
use *;
async
async
Run it:
Why Salvo?
Middleware = Handler
No complex traits or generics. Middleware is just a handler:
async
new.hoop.get
Tree Routing with Middleware
Apply middleware to specific route branches:
new
// Public routes
.push
// Protected routes
.push
OpenAPI in One Line
Just change #[handler] to #[endpoint]:
async
Auto HTTPS with ACME
Get TLS certificates automatically from Let's Encrypt:
let listener = new
.acme
.add_domain
.http01_challenge
.quinn; // HTTP/3 support
CLI Tool
Learn More
Performance
Salvo consistently ranks among the fastest Rust web frameworks:
Support
If you find Salvo useful, consider buying me a coffee.
License
Licensed under either of Apache License 2.0 or MIT license.