#router #web #hyper #tree #service #radix-tree #path

luminal-router

针对 hyper.rs 的最小化路由器

11 个版本

使用旧的 Rust 2015

0.0.12 2018 年 3 月 25 日
0.0.11 2018 年 3 月 25 日

#22 in #radix-tree

每月 31 次下载

Apache-2.0

43KB
974

luminal_router

hyper 的路由器

为什么

有几个尝试为 hyper 构建路由器。大多数都不是活跃开发。正在开发的那个,hyper-router,非常基础,依赖于正则表达式匹配。

luminal_router 使用内部基数树进行高效分发。包含的基准测试表明性能是匹配路径的线性函数。它不引入任何额外的特性和类型,只有别名,所以任何 Service 实现或与 hyper::server::service_fn 兼容的函数都将与 luminal_router 或标准 hyper 一起工作。

需要帮助

基数树实现看起来合理,无疑可以经过基准测试和改进,特别是在它获得支持路径参数的能力后,这将直接影响到基于使用路径组件作为底层树边沿的查找时间。

待办事项

  • 支持路径参数
  • 将消息错误转换为显式类型。
  • 添加基准测试。
  • 向 RouteTree 添加迭代器,该迭代器消耗路径令牌,在首次失败时返回 None
  • 将示例添加到文档中
  • 将示例添加到示例 crate 中

依赖项

~13MB
~225K SLoC