7 个版本

使用旧的 Rust 2015

0.1.6 2023 年 8 月 28 日
0.1.5 2017 年 3 月 16 日
0.1.0 2016 年 12 月 6 日

#4#push

Apache-2.0

485KB
10K SLoC

http-box

Build: Passing dev: 0.1.6 license: Apache 2.0

什么是 http-box?

http-box 是一个以推送为导向的 HTTP 1 & 2 解析器,旨在保持快速和简洁。它提供了处理额外的 HTTP 细节(如查询解析、解码十六进制编码的字符串和头部字段解析)的实用程序。

http-box 的目的是解析 HTTP 内容,仅此而已,因此在库中不会找到 RequestResponse 类型。然而,如果将来提供,它们将由实用程序 crate 提供。

http-box 将愉快地处理任何 &[u8] 数据,并且不依赖于任何套接字或网络依赖项。

功能

  • 新功能: HTTP/2 支持
  • 推送导向,一次处理一个字节
  • 通过回调接收数据,可以在任何点跳出解析器循环
  • HTTP/1.x 头部被规范化为小写
  • 错误报告错误类型和发生的字节
  • 单独解析 HTTP/1.x 阶段
    • 头部
      • 请求 / 响应
      • 头部
    • 多部分
      • 头部
      • 数据
    • 分块传输编码
      • 分块长度
      • 扩展
      • 分块数据
      • 尾部
    • URL 编码
      • 参数
  • 零拷贝哲学
  • DoS 防护易于支持
  • 快速!
  • 与任何网络库一起使用

API 文档

https://docs.rs/http-box/0.1.6/http_box/

HTTP/2.x 示例

HTTP/1.x 示例

HTTP 工具

依赖项

~0.1–1.4MB
~19K SLoC