39次发布

0.3.7 2024年4月5日
0.3.6 2023年9月27日
0.3.5 2023年4月28日
0.3.4 2023年3月31日
0.0.0 2018年3月29日

#server-framework 中排名第2

Download history 187515/week @ 2024-04-23 176499/week @ 2024-04-30 165653/week @ 2024-05-07 188400/week @ 2024-05-14 200485/week @ 2024-05-21 211358/week @ 2024-05-28 219853/week @ 2024-06-04 222266/week @ 2024-06-11 196755/week @ 2024-06-18 217125/week @ 2024-06-25 185074/week @ 2024-07-02 196340/week @ 2024-07-09 196698/week @ 2024-07-16 208169/week @ 2024-07-23 199924/week @ 2024-07-30 201217/week @ 2024-08-06

每月下载量 840,755
用于 568 个crates (475直接)

MIT 许可证

325KB
7K SLoC

warp

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

一个超级简单、可组合的Web服务器框架,用于光速。

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–20MB
~304K SLoC