#handler #hyper-server #web #error #service #api #request

luminal-handler

在 hyper::server::Service 上提供稍微方便的 API

5 个版本

使用旧的 Rust 2015

0.0.5 2018 年 3 月 25 日
0.0.4 2018 年 3 月 25 日
0.0.3 2018 年 3 月 25 日
0.0.2 2018 年 3 月 24 日
0.0.1 2018 年 3 月 12 日

#26 in #hyper-server

每月 23 次下载
luminal-router 中使用

Apache-2.0

8KB
142 代码行

luminal-handler

一个 crate,提供一种实现特性和一个调用函数,以将非 future aware 请求处理提升到 hyper。

为什么

hyper::server::Service 不是一个特别宽容的 API。它直接暴露了 futures 的管道,并使错误处理变得不清楚。希望这个 crate 提供一个更容易的 API,而不会牺牲太多,如果不是任何性能。特别是,引入了 IntoResponse 特性,以帮助调用者使用他们自己的错误类型,并在需要将那些错误转换为有效的 hyper::server::Response 实例时进行分层。

待办事项

  • 添加 handler_fn 以匹配 hyper 的 service_fn
  • 改进错误处理
    • 支持错误状态码和响应体
  • 添加测试
  • 找出如何干净地传递请求的附加信息
    • 现在存在一个初步的枚举
    • 使用可能将由 luminal-pathparam 和 luminal-middleware 的发展驱动。
  • 在文档中添加示例
  • 在示例 crate 中添加示例

依赖项

~9MB
~153K SLoC