5个不稳定版本
0.2.0 | 2024年6月15日 |
---|---|
0.1.2 | 2024年6月14日 |
0.1.1 | 2024年5月27日 |
0.1.0 | 2024年5月26日 |
0.0.0 | 2024年3月13日 |
#405 in HTTP服务器
130KB
2K SLoC
纤维
⚠️ 警告:尚未准备好用于生产!⚠️
使用Rust编写的快速且强大的HTTP路由器
特性
- 异步API
- 强大的路由器
- 灵活的中件间
- 命名参数
- 全局支持
- 正则表达式匹配
- URL重写
- URL重定向
- 域名过滤
- 子域名过滤
- 子路由支持
- 多样化的响应
- 流支持
- 双栈支持
- 多个监听器
示例
启动
[dependencies]
fibra = "0.x"
tokio = { version = "1", features = ["full"] }
use fibra::*;
#[tokio::main]
async fn main() -> FibraResult<()> {
let mut app = Fibra::new();
app.get("/", "Hello World!")?;
app.bind(3000)?;
app.run().await
}
基本
工具
性能
- todo 使用两台机器,wrk
基准测试
- MacBook Air, Apple M2 24G, Sonoma 14.5, Rust 1.79
名称 | 时间 |
---|---|
run_baseline | [307.88 ns 309.69 ns 311.91 ns] |
run_routes_1 | [898.58 ns 900.80 ns 903.07 ns] |
run_routes_8_front | [904.38 ns 906.53 ns 908.77 ns] |
run_routes_8_middle | [905.60 ns 907.58 ns 909.63 ns] |
run_routes_8_back | [929.73 ns 932.53 ns 935.54 ns] |
run_routes_16 | [938.56 ns 940.53 ns 942.66 ns] |
req_empty | [54.292 ns 54.320 ns 54.349 ns] |
req_hyper | [156.59 ns 156.73 ns 156.86 ns] |
req_build | [166.22 ns 166.29 ns 166.36 ns] |
res_empty | [11.436 ns 11.450 ns 11.465 ns] |
res_full | [119.16 ns 119.53 ns 119.98 ns] |
res_status_body | [15.415 ns 15.417 ns 15.420 ns] |
res_status | [11.562 ns 11.572 ns 11.581 ns] |
res_body | [15.391 ns 15.393 ns 15.397 ns] |
文档
文档可在此处找到。
许可证
本软件根据MIT许可证发布。
依赖
~18–30MB
~498K SLoC