3 个版本

0.3.2 2024 年 3 月 18 日
0.3.1 2024 年 3 月 15 日
0.3.0 2024 年 3 月 15 日

#821 in HTTP 服务器

MIT 许可证

680KB
685

Surfer Logo

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