Rust 編寫的簡單實用的 Web 後端框架
Salvo 構建於 tokio 和 hyper 之上. 僅僅需要 Rust 基礎知識即可開發功能強大的後端服務.
我們的目標是: 編碼最簡單, 功能不缺失, 性能有保障.
use salvo::prelude::*;
#[fn_handler]
async fn hello_world(res: &mut Response) {
res.render("Hello world!");
}
#[tokio::main]
async fn main() {
let router = Router::new().get(hello_world);
let listener = TcpListener::bind("127.0.0.1:7878");
Server::new(listener).serve(router).await.unwrap();
}
http://localhost:7878
Hello world!
鏈式樹狀路由系統
鏈式樹狀路由系統允許你非常方便地寫出鏈式表達式. 通過篩選器可以設置路由的具體匹配規則. 在路徑選擇器中支持正則表達式約束.
let debug_mode = true;
let admin_mode = true;
let router = Router::new()
.get(handle)
.push(
Router::with_path("users").hoop(auth).post(handle).push(
Router::with_path("< id>")
.post(handle)
.delete(handle),
),
)
.push(
Router::with_path("users")
.get(handle)
.push(Router::with_path("< id>").get(handle)),
)
.then(|router| {
if debug_mode {
router.push(Router::with_path("debug").get(handle))
} else {
router
}
})
.then(|router| {
if admin_mode {
parent.push(Router::with_path("admin").get(handle))
} else {
router
}
});