2 个版本
0.1.1 | 2021年12月5日 |
---|---|
0.1.0 | 2021年12月5日 |
#2533 in 解析器实现
13KB
177 代码行
Respirator - Rust 中的 RESP 解析器
Respirator 是基于 nom 的 Redis 序列化协议 (resp) 解析器。目前只支持“完整”解析(即只有当所有要解析的数据都可用时才工作),但目标还包括支持流式解析。
示例
use respirator::{Resp, resp};
use std::matches;
let input = &b"*2\r\n$2\r\nOK\r\n$4\r\nResp\r\n"[..];
let (_, parsed) = resp(input).unwrap();
if let Resp::Array(Some(values)) = parsed {
let simple_string = &values[0];
let bulk_string = &values[1];
assert!(matches!(Resp::SimpleString(b"OK".to_vec()), simple_string));
assert!(matches!(Resp::BulkString(Some(b"Resp".to_vec())), bulk_string));
}
许可证
许可协议为以下之一:
- Apache 许可证 2.0 版 (LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则任何旨在包含在作品中的有意提交的贡献,如 Apache-2.0 许可证所述,应按上述方式双重许可,不附加任何额外条款或条件。
依赖项
~1MB
~20K SLoC