10 个版本

使用旧的 Rust 2015

0.3.2 2018年5月24日
0.3.1 2016年12月23日
0.3.0 2016年10月10日
0.2.4 2016年6月13日
0.2.0 2015年7月10日

559HTTP 服务器 中排名

Download history 177/week @ 2024-04-04 174/week @ 2024-04-11 218/week @ 2024-04-18 235/week @ 2024-04-25 173/week @ 2024-05-02 185/week @ 2024-05-09 187/week @ 2024-05-16 192/week @ 2024-05-23 181/week @ 2024-05-30 155/week @ 2024-06-06 164/week @ 2024-06-13 173/week @ 2024-06-20 127/week @ 2024-06-27 82/week @ 2024-07-04 120/week @ 2024-07-11 152/week @ 2024-07-18

每月下载量 503
13 Crates 使用(直接使用 2 个)

MIT 许可证

220KB
6K SLoC

C 6K SLoC // 0.1% comments Rust 393 SLoC // 0.0% comments PowerShell 35 SLoC // 0.4% comments

HttpMuncher: Rust 流式 HTTP 解析器

Build Status Build status Documentation

Rust 对 NodeJS http-parser 库的包装。

它旨在用作基于 Rust 的网络服务器中的 HTTP/1.x 协议处理器。

动机

为什么不从头开始用 Rust 编写一个新的 HTTP 解析器,或者只是使用现有的类似 httparse 的 crate 呢?

原因如下:

  • NodeJS HTTP 解析器库基于功能齐全且健壮的 nginx 的 HTTP 解析器,设计上安全、快速且轻量级;
  • 它兼容 HTTP/1.1,包括升级连接和分块响应;
  • 我没有找到能够进行流式解析的优秀的 HTTP 解析器,即能够积极地使用来自 TCP 套接字的部分数据;
  • Rust 的 FFI 几乎没有开销;
  • 在大多数情况下,重新发明轮子是愚蠢的;
  • 在尝试学习 Rust 的过程中非常有趣。 :)

用法

将库添加到您的 Cargo.toml 依赖关系部分

[dependencies]
http-muncher = "0.3"

或者,对于边缘版本

[dependencies]
http-muncher = {git = "https://github.com/nbaksalyar/rust-streaming-http-parser"}

您可以在 examples/parser.rs 中找到用法示例(通过执行 cargo run --example parser 运行它)和库测试中。

API 文档

您可以在 此处找到 API 文档

替代库

  • http-parser-rs - NodeJS HTTP 解析器的 Rust 端口(不使用 FFI)。
  • httparse - 纯 Rust HTTP 解析器实现。

许可证

MIT 许可证 (MIT)

版权所有 (c) 2015 Nikita Baksalyar <[email protected]>

依赖项

~225KB