1个稳定版本

1.0.0 2021年1月1日

#1194 in HTTP服务器

MIT许可证

2KB

Rust的HTTP服务器库

Build Status dependency status

web_server是一个小型、无依赖项的crate,用于创建HTTP服务器。

当你使用Rust编写后端代码时,最让人烦恼的可能就是框架的大小和编译应用程序所需的时间

web_server包解决了这些问题。web_server没有依赖项,但允许你创建完整的服务器

使用web_server的第一个服务器

extern crate web_server;
web_server::new()
   .get("/", Box::new(|request: web_server::Request, mut response: web_server::Response|
        "Hello World!".into()))
   .launch(80)
   .unwrap();

很简单!

首先你必须创建HttpServer的实例

web_server::new()

然后你可以声明你的端点。例如。

.get("/your/path", Box::new(|request, default_response| {
    // There place your logic
    // This function returns Response
    "response text".into()
}))
.post("/your/path", Box::new(|_, _| "Handler for POST method"))
.route(web_server::HttpMethod::DELETE, "/your/path", Box::new(|_, _| "Handler for DELETE method"))
.any("/your/path", Box::new(|_, _| "Handler for any method"))

现在你必须通过launch方法启动服务器

.launch(PORT).unwrap()

接收POST数据

例如。

    use web_server::decoders::x_www_form_urlencoded;

    web_server::new()
        .post("/add-user", Box::new(|req, _| {
            println!("{}", req.get_body());
            let body: HashMap<String, String> = x_www_form_urlencoded(req.get_body().as_str());
            format!(
                "Add new user: {}",
                body.get("user").unwrap_or(&String::from("Error!"))
            )
            .into()
        }))
        .launch(8080)
        .unwrap();

阅读examples/以了解更多!

依赖项

~11–19MB
~303K SLoC