介绍
Salvo,功能强大且简单易用的 Rust Web 框架
特性
- 简单强大 - 零样板代码,会写函数就会写 Handler
- HTTP/1、HTTP/2、HTTP/3 - 开箱即用的全协议支持
- 灵活路由 - 树形路由,中间件可挂载到任意层级
- 自动证书 - 内置 ACME,自动获取和续期 TLS 证书
- OpenAPI - 一流的 OpenAPI 支持,自动生成文档
- WebSocket & WebTransport - 内置实时通信支持
- 基于 Hyper & Tokio - 生产级异步运行时
快速开始
bash
cargo new hello-salvo
cd hello-salvo
cargo add salvo tokio --features salvo/oapi,tokio/macros
编写 src/main.rs:
rust
use salvo::prelude::*;
#[handler]
async fn hello() -> &'static str {
"Hello World"
}
#[tokio::main]
async fn main() {
println!("=================================");
println!(" Rust Server Starting...");
println!("=================================");
println!(" Address: 127.0.0.1:7878");
println!(" Framework: Salvo");
println!(" Status: Initializing...");
println!("=================================\n");
let router = Router::new().get(hello);
let acceptor = TcpListener::new("127.0.0.1:7878").bind().await;
println!("Server is ready and listening on http://127.0.0.1:7878");
println!("Press Ctrl+C to stop the server\n");
Server::new(acceptor).serve(router).await;
}
运行:
cargo run
cargo加速
找到CARGO_HOME(在系统环境变量里配置的)

或者 %USERPROFILE%\.cargo
-
打开 Cargo 的目录
-
在该目录下,检查是否存在
config.toml文件。如果不存在,新建一个文本文档 ,并将其重命名为config.toml(注意确保文件扩展名是.toml,而不是.txt)。 -
用记事本或其他文本编辑器打开
config.toml文件。

中科大源
中科大源
bash
[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
[registries.ustc]
index = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"