3 unstable releases

new 0.1.0 May 13, 2024
0.0.2 Feb 23, 2024
0.0.1 Nov 25, 2023

#310 in HTTP server

Download history 1/week @ 2024-02-13 136/week @ 2024-02-20 66/week @ 2024-02-27 2/week @ 2024-03-05 8/week @ 2024-03-26 30/week @ 2024-04-02

225 downloads per month

MIT license

35KB
638 lines

mini-server

The mini rust server

cargo add mini-server

HTTP server

use mini_server::*;

fn main() {
    let mut app = http_server!("localhost", 4221);

    app.get("/", |_, _| {
        let mut response = HTTPResponse::default();
        response.set_body(b"Hello World!".to_vec());

        response
    });

    app.run();
}

Dynamic paths

The path is an expression that can contains dynamic variables.

  • Basic paths: /, /this/is/a/path, ...
  • Dynamic path: /this/is/a/@varibale, /this/is/another/#variable

# and @ are prefixes for dynamic values. # for denoting numbers and @ for strings

use mini_server::*;

fn main() {
  let mut app = http_server!("localhost", 4221);

  app.get("/hello/@name/#age", |_, exprs| {
    let name = expand!(exprs, "name", PathExpr::String);
    let age = expand!(exprs, "age", PathExpr::Number);

    let mut response = HTTPResponse::default();
    response.set_body(
      format!("Hello {name}, you are {age}!")
        .as_bytes()
        .to_vec(),
    );

    response
  });
}

Examples

To run an example:

cargo run --example $name

No runtime deps