#hyper-http #async-http #http #web-framework #web #server

saphir

完全异步等待的 http 服务器框架

86 个版本 (45 个稳定版本)

3.1.1 2023 年 4 月 18 日
3.1.0 2023 年 1 月 9 日
3.0.0 2021 年 12 月 14 日
2.8.2 2021 年 2 月 24 日
0.5.2 2018 年 7 月 16 日

#208HTTP 服务器


2 crates 中使用

MIT 许可证

275KB
6K SLoC

logo

doc crate issue Rust downloads license dependency status

萨菲尔是 Rust 的完全异步等待的 http 服务器框架

目标是给你的 Web 栈提供低级别的控制(就像 hyper 一样),而不需要从头开始做所有耗时的任务。

快速概述

use saphir::prelude::*;
struct TestController {}
#[controller]
impl TestController {
    #[get("/{var}/print")]
    async fn print_test(&self, var: String) -> (u16, String) {
        (200, var)
    }
}
async fn test_handler(mut req: Request) -> (u16, Option<String>) {
    (200, req.captures_mut().remove("variable"))
}
#[tokio::main]
async fn main() -> Result<(), SaphirError> {
    env_logger::init();
    let server = Server::builder()
        .configure_listener(|l| {
            l.interface("127.0.0.1:3000")
        })
        .configure_router(|r| {
            r.route("/{variable}/print", Method::GET, test_handler)
                .controller(TestController {})
        })
        .build();
    
    server.run().await
}

依赖项

~8–23MB
~378K SLoC