2 个版本
0.3.4 | 2023 年 4 月 4 日 |
---|---|
0.3.2 | 2021 年 12 月 12 日 |
1299 在 HTTP 服务器 中
86 每月下载
用于 perseus-warp
320KB
6.5K SLoC
warp
警告:此分支是一个临时解决方案,一旦 此问题得到修复,它将被弃用。
一个超级简单、可组合的 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