7个版本

0.1.6 2023年11月3日
0.1.5 2023年11月1日
0.1.4 2023年10月30日

4#serves 类别中

每月下载量 47

GPL-3.0-only

18KB
213

crane

Rust

一个简单且快速的Web服务器 :)

入门指南

为了构建Web服务器,您需要将 crane-webserver 作为依赖项添加到Rust项目中,方法如下:

cargo add crane-webserver

示例

创建一个响应消息的HTTP服务器。

use crane_webserver::*;

fn main() {
    let server = WebServer::bind("127.0.0.1:8888", |path, query| {
        match path.as_str() {
            "/" => default_route_fn(query),
            _ => ResponseBuilder::new().build(),
        }
    }).unwrap()

    server.start();
}

fn root() -> Response {
    ResponseBuilder::new()
        .status(HttpStatus::OK)
        .header("Content-Type", "text/plain")
        .body("Hello, World!")
        .build()
}
$ curl localhost:8888/
Hello, World!

lib.rs:

一个简单且快速的Web服务器。

crane-webserver 提供了您构建Web服务器所需的所有工具。

它是如何工作的?

在核心上,crane-webserver 包含一个 WebServer。这个 WebServer 是一个“构建器”,它接受一个闭包,该闭包负责将不同的函数映射到不同的路径,然后调用 start 函数来启动Web服务器。

示例

一个基本的Web服务器,它提供“Hello, World!”

use crane_webserver::*;

fn main() {
    let server = WebServer::bind("127.0.0.1:8888", |path, _query| {
        match path.as_str() {
            "/" => root(),
            _ => ResponseBuilder::new().build()
        }
    }).unwrap();

    server.start();
}

fn root() -> Response {
    ResponseBuilder::new()
        .status(HttpStatus::OK)
        .header("Content-Type", "text/plain")
        .body("Hello, World!")
        .build()
}

运行程序后,打开您的Web浏览器,转到 https://127.0.0.1:8888/,查看服务器的工作情况!

依赖项

~1.5MB
~48K SLoC