#server #nano #http #url-parameters

server_nano

A fast and lightweight HTTP server implementation in Rust

6 releases

0.1.5 Apr 11, 2023
0.1.4 Apr 7, 2023

#266 in HTTP server

28 downloads per month

MIT license

32KB
809 lines

server_nano

A tiny, fast, and friendly web server written in rust and inspired by express. It uses may to coroutines

Usage

First, add this to your Cargo.toml:

[dependencies]
server_nano = "0.1.4"

Now, you can write you server

use server_nano::{json, Server};

fn main() {
    let mut app = Server::new();

    app.get("/", |_, res| res.send("welcome to home page!"));

    app.get("/user/:id", |req, res| {
        let user_id = req.parameter("id").unwrap();
        let json_value = json!({ "username": user_id });
        res.json(&json_value)
    });

    app.get("/product/:name", |req, res| {
        let product_name = req.parameter("name").unwrap();
        let message = &format!("Welcome to product page of product: {}", product_name);
        res.send(message)
    });

    app.post("/test", |_, res| res.send("test!"));

    app.post("/settings", |req, res| {
        let json_body = req.json_body().unwrap();

        let response = json!({
            "success": true,
            "message": "Settings updated successfully",
            "body": json_body
        });
        res.json(&response)
    });

    app.listen("127.0.0.1:8080").unwrap();
}

Dependencies

~2–35MB
~500K SLoC