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

highnoon

受tide启发的最小化Web服务器框架,基于hyper构建

9个版本

0.0.9 2022年11月1日
0.0.8 2022年3月1日
0.0.7 2022年2月20日
0.0.5 2021年7月16日
0.0.4 2021年2月22日

#1189HTTP服务器

32 每月下载量

MIT 许可证

62KB
1.5K SLoC

Highnoon

crates.io API docs MIT licensed

基于Hyper构建的最小化Web框架

这是一个非常早期的开发版本。虽然我对API目前的表现很满意,但任何事情都可能发生变化。

要开始,首先实现包含所有路由处理器共享数据的State trait。这个trait包含一个方法来获取一个新的Context,这是在单个请求持续期间共享的数据。通常使用Context在过滤器之间共享数据。

struct MyState;

impl highnoon::State for MyState {
    type Context = ();

    fn new_context(&self) -> Context {
        ()
    }
}

然后使用你的State创建一个App,附加过滤器并启动服务器。

#[tokio::main]
async fn main() -> highnoon::Result<()> {
    let mut app = highnoon::App::new(MyState);

    app.with(highnoon::filter::Log);

    app.at("/hello").get(|_request| async {
        "Hello world!\n\n"
    });

    app.listen("0.0.0.0:8888").await?;
    Ok(())
}

依赖项

~11–24MB
~334K SLoC