16 个稳定版本

2.2.0 2023年1月9日
2.1.2 2021年1月12日
2.1.1 2020年8月6日
2.1.0 2020年7月10日
1.1.0 2020年3月18日

#51 in #hyper-http

每月24次下载
用于 saphir

MIT 许可证

82KB
1.5K SLoC

logo

doc crate issue Rust downloads license dependency status

Saphir 是一个完全异步的 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
}

依赖项

~2MB
~45K SLoC