1个不稳定版本

0.0.6 2021年5月2日

#764 in HTTP服务器

自定义许可

28KB
698

version 0.0.5

Webby

Webby是一个简单的支持HTTP 1.1的Rust Web服务器。

动机

Rust生态系统拥有许多第三方Web服务器工具包。许多工具包都非常出色,但它们都没有真正教你Web服务器是如何工作的。这个工具包让我能够了解HTTP 1.1是如何工作的,如何处理请求,异步编程等等!

目前,我不建议在任何重要的项目中使用这个工具包。它太慢且不可靠。

功能

创建一个简单的HTTP服务器

// Run a server on localhost:8080
fn main() {
    webby::create("127.0.0.1", 8080)
        .start_listening();
}

路由

没有路由的Web服务器是不完整的,这就是为什么Webby也支持路由。

你可以使用函数或lambda函数。只要匹配预期的函数签名,它就会工作!

fn index() -> HttpResponse {
    println!("This is an index route, it only ever returns HTTP 204.");
    HttpResponse::new().no_content()
}

fn main() {
    webby::create("127.0.0.1", 8080)
        .add_route(HttpMethod::GET, "/", index)
        .start_listening();
}

拉取请求指南

  1. 从以下格式的master创建一个分支:feature/<你的-功能-名称-在这里>
  2. 进行更改。
  3. 编写单元测试。
  4. 测试更改。
  5. master上重新基础。
  6. 更新README.md中的状态徽章。
  7. 发起一个拉取请求。
  8. 添加适当的变更日志/拉取请求描述。

第三方依赖项

我已经尝试将Webby保持得尽可能简单。然而,有些任务超出了这个项目范围。

演示

  • Env Logger - 一个可以通过环境变量配置的日志记录器
  • DotEnv - 从.env文件中加载环境变量

Webby

  • Log - 轻量级日志门面

依赖项

~86KB