#hyper-server #applications #web-apps #conduit #host #request #stack

conduit-hyper

在hyper服务器上托管基于conduit的Web应用

22次发布

0.4.2 2022年10月30日
0.4.1 2021年11月11日
0.3.0 2021年11月6日
0.3.0-alpha.72021年1月14日
0.1.1 2018年7月19日

#1439 in HTTP服务器

Download history 1/week @ 2024-05-13 21/week @ 2024-05-20 7/week @ 2024-05-27 6/week @ 2024-06-03 7/week @ 2024-06-10 8/week @ 2024-06-24 147/week @ 2024-07-22

每月148次下载
用于 sentry-conduit

MIT/Apache

25KB
443

conduit-hyper

此crate将一个hyper 0.14服务器与一个conduit 0.10应用堆栈集成。

用法

此crate处于维护模式,仅适用于crates.io代码库内部使用。如果您希望使用此crate,请通过问题跟踪器联系我们。

尽管提供了一些针对大请求的保护,但不应直接将此服务器暴露在公共互联网上。强烈建议在生产级反向代理之后使用此类应用的服务器。

应按照我们的安全策略报告潜在的安全漏洞。

错误和panic处理

如果应用程序处理程序返回一个Err(_),则服务器将通过tracing crate记录描述,然后返回一个通用的500状态响应。

如果处理程序panic,则默认panic处理程序将消息打印到stderr,并在不发送响应的情况下关闭连接。将来,这些panic可能被转换为通用的500状态响应。

请求处理

如果请求包含正文,则在将处理程序分配到线程之前,将整个正文缓冲。目前没有对最大正文大小的限制,因此客户端可以通过发送大型正文消耗大量内存。因此,建议使用限制最大正文大小的反向代理。

不有效的UTF-8头值将被替换为空字符串。

conduit::Request

以下提供给应用程序的Request方法具有值得注意的行为

  • scheme始终返回Http,因为目前不支持https
  • host 如果 Host 头部不是有效的 UTF-8,则返回空字符串。

Request 的所有其他方法应按预期行为。

待办事项

  • 在记录错误时包含 X-Request-Id 头部

许可证

根据以下任一许可证授权

依赖项

~5–14MB
~163K SLoC