server_nano

Crates.ioserver_nano
lib.rsserver_nano
version0.2.1
sourcesrc
created_at2023-04-06 16:02:36.963446
updated_at2024-04-04 23:51:45.949518
descriptionA fast and lightweight HTTP server implementation in Rust.
homepage
repositoryhttps://github.com/jonataslaw/server_nano
max_upload_size
id832293
size60,087
Jonny Borges (jonataslaw)

documentation

README

server_nano

A tiny, fast, and friendly web server written in rust and inspired by express. It uses may to coroutines and is one of the fastest (unix) servers today.

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();
}

Commit count: 10

cargo fmt