賽風是像風一樣輕快的 Rust Web 服務端框架
簡單得讓你一見鍾情
其他 Rust 框架是在你掌握複雜的 Rust 語言功能,做完各種類型體操後依然通不能正常編譯, 而 Salvo 卻善解人意,不管是新手還是老司機都可以輕鬆駕馭.
強大實用的功能
雖然使用簡單, 但是功能依舊強大, 內置 Multipart, OpenAPI,HTTP2/3, LetsEncrypt, 靈活的數據解析...等等實用功能.
風馳電掣的性能
在 Rust 的加持下, 性能爆錶. 與其他大多數語言的框架對比, 就像是他們使著小手槍一槍一槍地打, 你直接就掏出了你的大機關槍持久輸出.
從未見過的路由係統
Salvo 擁有與衆不同的路由係統, 可以無限嵌套, 使用方便, 靈活, 高效. 你可以用各種姿勢隨心所欲地使用它, 想套就套,想去哪就去哪,帶給你前所未有的極緻快感.
極簡的中間件係統
Salvo 中中間件和處理句柄都是 Handler, 兩者合二為一, 和諧統一. 並且官方提供豐富且靈活的中間件實現,滿足多z種應用場景需求.
運行穩定無憂
Rust 的安全機製, 讓你的網站上線後持久不崩, 冇有後顧之憂. 你有更多的時間享受幸福生活, 而不是啪啪啪地敲鍵盤搶救伺務器.
Hello world!
use salvo::prelude::*;
#[handler]
async fn hello() -> &'static str {
"Hello World"
}
#[tokio::main]
async fn main() {
tracing_subscriber::fmt().init();
let router = Router::new().get(hello);
let acceptor = TcpListener::new("127.0.0.1:5800").bind().await;
Server::new(acceptor).serve(router).await;
}
[package]
name = "example-hello"
version = "0.1.0"
edition = "2021"
publish = false
[dependencies]
salvo.workspace = true
tokio = { version = "1", features = ["macros"] }
tracing = "0.1"
tracing-subscriber = "0.3"