15个版本

0.5.1 2023年1月9日
0.4.13 2022年2月4日
0.4.12 2021年8月26日
0.4.11 2021年7月8日
0.4.4 2020年6月30日

#1189 in HTTP服务器

每月30次下载

MIT 许可证

120KB
3K 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
}

依赖项

~6.5–9MB
~161K SLoC