2 个版本

0.3.4 2023 年 4 月 4 日
0.3.2 2021 年 12 月 12 日

1299HTTP 服务器

Download history 9/week @ 2024-03-14 26/week @ 2024-03-28 17/week @ 2024-04-04 10/week @ 2024-04-18 9/week @ 2024-04-25 5/week @ 2024-05-23 18/week @ 2024-05-30 12/week @ 2024-06-13 45/week @ 2024-06-20 29/week @ 2024-06-27

86 每月下载
用于 perseus-warp

MIT 许可证

320KB
6.5K SLoC

warp

警告:此分支是一个临时解决方案,一旦 此问题得到修复,它将被弃用。

crates.io Released API docs MIT licensed GHA Build Status Discord chat

一个超级简单、可组合的 warp 速度网络服务器框架。

warp 的基本构建块是 Filter:它们可以组合和组成,以表达对请求的丰富要求。

由于其 Filter 系统的优点,warp 提供以下功能

  • 路径路由和参数提取
  • 标题要求和解析
  • 查询字符串反序列化
  • JSON 和表单正文
  • 多部分表单数据
  • 静态文件和目录
  • WebSockets
  • 访问日志
  • Gzip、Deflate 和 Brotli 压缩

由于它建立在 hyper 之上,因此您将自动获得

  • HTTP/1
  • HTTP/2
  • 异步
  • 最快的 HTTP 实现之一
  • 经过测试且 正确

示例

将 warp 和 Tokio 添加到您的依赖项

tokio = { version = "1", features = ["full"] }
warp = "0.3"

然后在您的 main.rs 中开始

use warp::Filter;

#[tokio::main]
async fn main() {
    // GET /hello/warp => 200 OK with body "Hello, warp!"
    let hello = warp::path!("hello" / String)
        .map(|name| format!("Hello, {}!", name));

    warp::serve(hello)
        .run(([127, 0, 0, 1], 3030))
        .await;
}

有关更多信息,您可以查看 文档示例

依赖项

~8–25MB
~354K SLoC