3 个版本
0.3.2 | 2024 年 3 月 18 日 |
---|---|
0.3.1 | 2024 年 3 月 15 日 |
0.3.0 | 2024 年 3 月 15 日 |
#821 in HTTP 服务器
680KB
685 行
Surfer
一个轻量级、异步的 Rust 后端框架
这是一个简单、轻量级且异步的后端框架。它基于 async-std
构建,并提供易于注册和处理的 HTTP 请求的路线。它还提供了用于响应创建的内建响应结构体,并为实现了 Serialize 和 Deserialize 的结构体提供了 JSON 响应支持。
🚀 特性
- 异步处理 HTTP 请求(使用 async-std)
- 使用
route!
宏轻松注册路线 - 内置响应结构体,易于创建响应
- 支持实现了 Serialize 和 Deserialize 的结构体的 JSON 响应
- 使用
#[surfer_launch]
宏来启动服务器以避免编写#[async_std::main]
(内部是同一件事 :D)
📦 安装
克隆仓库,并将以下内容添加到您的 Cargo.toml
[dependencies]
surfer = "0.3.2"
📚 示例用法
extern crate surfer;
use serde_json::json;
use surfer::request::Method::GET;
use surfer::request::Request;
use surfer::response::json_response::JsonResponse;
use surfer::response::{IntoResponse, Response};
use surfer::route;
use surfer::server::Server;
use surfer_macros::surfer_launch;
async fn index(_: Request) -> Response {
let json_obj = json!({
"message": "Hello, Surfer!"
});
JsonResponse {
status_code: 200,
headers: None,
body: json_obj,
}
.into_response()
.await
}
#[surfer_launch]
async fn main() {
let mut server = Server::new(None, None);
server.register_route(route!(GET, "/", index));
server.listen().await;
}
📖 文档
有关更详细的文档,请参考源代码 🫠
依赖项
~9–20MB
~278K SLoC