9 个版本

0.2.1 2023年3月15日
0.2.0 2023年3月15日
0.1.6 2023年3月9日

#1010HTTP服务器

每月 48 次下载

MIT 许可证

7KB
121

http_server_tiny

使用 tiny_http 的轻量级 HTTP 服务器库

用法

您需要提供一个 error.html 文件,以便服务器在返回 404 错误时使用。

路由宏(实验性)!!!

此宏对于部署静态文件非常有用。

示例

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

此宏等于以下内容

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>

依赖项

~385KB