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日 |
559 在 HTTP 服务器 中排名
每月下载量 503
被 13 个 Crates 使用(直接使用 2 个)
220KB
6K SLoC
HttpMuncher: Rust 流式 HTTP 解析器
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