9 releases

0.2.1 Mar 15, 2023
0.2.0 Mar 15, 2023
0.1.6 Mar 9, 2023

#1333 in HTTP server

MIT license

7KB
121 lines

http_server_tiny

Tiny http server library using tiny http

Usage:

You need to provide a error.html file to use when server return 404 error.

Route Macro (Experimental)!!!

This macro is usefull for deploying static files.

Example

route!(get_html => server, "/", ".index.html");

This macro is equal to this

server.add_route(
  &Method::Get,
    "/",
    Box::new(|_| Res::File {
        name: "./index.html",
        ct: "text/html; charset=utf-8",
        sc: 200,
  }),
);

src/main.rs

use http_server_tiny::{route, HttpServer, Method, Res};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut server = HttpServer::new("0.0.0.0:8000", "./error.html");
    route!(get_html => server, "/", ".index.html");
    route!(get_js => server, "/index.js", ".index.js");

    server.handle_requests(Box::new(|req| {
        println!("INFO: {} {}", req.method, req.url);
    }))
}

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Hello, World</title>
  </head>
  <body>
    <h1>Hello, world!</h1>
  </body>
  <script src="index.js"></script>
</html>

index.js

console.log("Hello, world!");

error.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>404</title>
  </head>
  <body>
    404
  </body>
</html>

Dependencies

~380KB