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

highnoon

minimal web server framework inspired by tide, but built on hyper

9 releases

0.0.9 Nov 1, 2022
0.0.8 Mar 1, 2022
0.0.7 Feb 20, 2022
0.0.5 Jul 16, 2021
0.0.4 Feb 22, 2021

#1078 in HTTP server

MIT license

62KB
1.5K SLoC

Highnoon

crates.io API docs MIT licensed

A minimal web framework built on Hyper

This is a very early development release. While I'm pretty happy with the API so far, anything could change.

To get started first implement the State trait which holds all data shared by all the route handlers. This trait contains a single method to get a new Context which is the data shared for the duration of a single request. Context is generally used for sharing data between filters.

struct MyState;

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

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

Then create an App with your State, attach filters and routes and launch the server.

#[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(())
}

Dependencies

~11–24MB
~347K SLoC