#resp #parser #redis

respirator

RESP (Redis 序列化协议) 解析器

2 个版本

0.1.1 2021年12月5日
0.1.0 2021年12月5日

#2533 in 解析器实现

MIT/Apache

13KB
177 代码行

Respirator - Rust 中的 RESP 解析器

Respirator 是基于 nomRedis 序列化协议 (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 许可证所述,应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

~1MB
~20K SLoC