2个版本

使用旧的Rust 2015

0.0.2 2015年8月10日
0.0.1 2015年5月1日

#37 in #mut

Download history 58/week @ 2024-03-13 67/week @ 2024-03-20 43/week @ 2024-03-27 47/week @ 2024-04-03 34/week @ 2024-04-10 69/week @ 2024-04-17 101/week @ 2024-04-24 27/week @ 2024-05-01 15/week @ 2024-05-08 26/week @ 2024-05-15 68/week @ 2024-05-22 52/week @ 2024-05-29 261/week @ 2024-06-05 164/week @ 2024-06-12 69/week @ 2024-06-19 61/week @ 2024-06-26

571 每月下载量
用于 http-pull-parser

MIT 许可协议

85KB
2K SLoC

Rust HTTP解析器

Rust HTTP解析器提供解析HTTP请求和响应的功能。它是从用C语言编写的joyent/http-parser移植过来的。

用法

请参考文档

状态

解析器和单元测试都已移植。目前,所有测试用例都已通过。除此之外,我没有对其周围进行其他测试,也没有其他项目使用它。因此,它已经准备好进行测试,但距离在生产环境中使用还远。此外,API是不稳定的,可能会更改。


lib.rs:

Rust HTTP解析器

Rust HTTP解析器提供解析HTTP请求和响应的功能。

它是从用C语言编写的joyent/http-parser移植过来的。

安装

Cargo.toml中添加http_parser

[dependencies]
http_parser = "0.0.2"

用法

定义一个回调结构体

struct Callback;

impl HttpParserCallback for Callback {
    fn on_message_begin(&mut self, parser: &mut HttpParser) -> CallbackResult {
        println!("Message begin");
        Ok(ParseAction::None)
    }

    // Override other functions as you wish
}

为请求创建一个HttpParser实例

let mut parser = HttpParser::new(HttpParserType::Request);

创建一个Callback结构体实例

#
#
let mut cb = Callback;

通过提供HTTP请求执行解析器

#
#
let line: &str = "GET / HTTP/1.1\r\n";
parser.execute(&mut cb, line.as_bytes());

无运行时依赖