| Crates.io | maker_web |
| lib.rs | maker_web |
| version | 0.1.2 |
| created_at | 2025-10-01 05:13:34.952028+00 |
| updated_at | 2026-01-14 09:28:52.794449+00 |
| description | Security-first, high-performance, zero-allocation HTTP server for microservices |
| homepage | https://amakesashadev.github.io/maker_web |
| repository | https://github.com/AmakeSashaDev/maker_web |
| max_upload_size | |
| id | 1862099 |
| size | 253,279 |
ConnectionFilter trait to
reject unwanted connections at the TCP level.HTTP/1.1, HTTP/1.0, HTTP/0.9+
with keep-alive.ConnectionData] trait.Everything that remains outside the documentation—live statistics, deep details, and informal plans—I collect on a separate website. This is a space that I strive to keep current and meaningful.
Add maker_web and tokio to your Cargo.toml:
cargo add maker_web tokio --features tokio/full
Or manually:
[dependencies]
maker_web = "0.1"
tokio = { version = "1", features = ["full"] }
use maker_web::{Handled, Handler, Request, Response, Server, StatusCode};
use tokio::net::TcpListener;
struct MyHandler;
impl Handler for MyHandler {
async fn handle(&self, _: &mut (), req: &Request, resp: &mut Response) -> Handled {
match req.url().path_segments_str() {
["api", user, "name"] => {
resp.status(StatusCode::Ok).body(user)
}
["api", user, "name", "len"] => {
resp.status(StatusCode::Ok).body(user.len())
}
["api", "echo", text] => {
resp.status(StatusCode::Ok).body(text)
}
_ => resp.status(StatusCode::NotFound).body("qwe"),
}
}
}
#[tokio::main]
async fn main() {
Server::builder()
.listener(TcpListener::bind("127.0.0.1:8080").await.unwrap())
.handler(MyHandler)
.build()
.launch()
.await;
}
Check the examples directory for comprehensive usage examples.
Performance comparisons are available in the benchmarks directory.
maker_web is licensed under either of the following, at your option: