#redis #protocols #parser #resp #serialization #tiny #message

tinyresp

一个实现 Redis 序列化协议 (RESP) 的 Rust 库。

4 个版本 (2 个重大变更)

0.2.1 2024年2月29日
0.2.0 2024年2月29日
0.1.0 2024年2月28日
0.0.1 2024年1月29日

#1250解析器实现

Download history 10/week @ 2024-03-09 1/week @ 2024-03-16 14/week @ 2024-03-30 32/week @ 2024-04-06 2/week @ 2024-04-13

每月97 次下载

MIT 许可协议

38KB
830

tinyresp

Build Status codecov Crates.io docs.rs

一个实现 Redis 序列化协议 (RESP) 的 Rust 库。

RESP 协议(REdis Serialization Protocol)的简单解析器。

关于协议的概述,请参阅官方的 Redis 序列化协议 (RESP) 文档

此库使用 nom 编写,因此使用增量解析方法。这意味着使用 parse 方法将返回一个包含 2 个元素的元组

  • 剩余的输入(如果消息已完全解析,则可能为空字符串)
  • 解析的值(如果消息已完全解析)

示例

use tinyresp::{parse_value, Value};

let message = "*2\r\n$5\r\nhello\r\n$5\r\nworld\r\n";
let (remaining_input, value) = parse_value(message).unwrap();
assert_eq!(remaining_input, "");
assert_eq!(value, Value::Array(vec![
    Value::BulkString("hello"),
    Value::BulkString("world")
]));

贡献

每个人都非常欢迎为此项目做出贡献。您可以通过在 GitHub 上 提交问题 或提出改进建议来做出贡献。

许可协议

根据 MIT 许可协议 许可。© Luciano Mammino, Roberto Gambuzzi。

依赖项

~1.2–1.8MB
~37K SLoC