warp
一个超级简单、可组合的web服务器框架,速度如光速般快。
warp
的基本构建块是Filter
:它们可以组合和组织以表达对请求的丰富要求。
得益于其Filter
系统,warp开箱即用地提供了以下功能:
- 路径路由和参数提取
- 头部要求和提取
- 查询字符串反序列化
- JSON和表单主体
- 多部分表单数据
- 静态文件和目录
- WebSocket
- 访问日志记录
- 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,响应体为"Hello, warp!"
let hello = warp::path!("hello" / String)
.map(|name| format!("Hello, {}!", name));
warp::serve(hello)
.run(([127, 0, 0, 1], 3030))
.await;
}