3个不稳定版本
使用旧的Rust 2015
0.2.1 | 2016年8月3日 |
---|---|
0.2.0 | 2015年4月3日 |
0.1.0 | 2015年3月23日 |
#210 in #formatter
355KB
1.5K SLoC
rdb-rs - RDB解析、格式化、分析。一库全搞定
受redis-rdb-tools 启发并基于其开发。
文档
构建
cargo build --release
最低要求的Rust版本:1.6.0
安装
make install
您可以通过设置 PREFIX
来更改路径。默认为 /usr
。
基本操作
rdb-rs仅公开一个重要的方法:parse
。此方法负责从流中读取RDB,解析包含的数据,并使用已解析的值调用提供的格式化程序。
use std::io::BufReader;
use std::fs::File;
use std::path::Path;
let file = File::open(&Path::new("dump.rdb")).unwrap();
let reader = BufReader::new(file);
rdb::parse(reader, rdb::formatter::JSON::new(), rdb::filter::Simple::new());
格式化程序
rdb-rs提供了4个预定义的格式化程序,可以用于
Plain
:仅用于测试的纯文本输出JSON
:JSON编码的输出Nil
:抑制所有输出Protocol
:以RESP(Redis序列化协议)格式化数据
这些格式化程序遵循Formatter
trait,并为每种可能的数据类型或操作码提供方法。格式化程序需要正确处理所有提供的数据,例如列表、集合、散列、过期时间和元数据。
命令行
rdb-rs还提供了一个命令行应用程序。
此应用程序将接受RDB文件作为输入,并以指定的格式(默认为JSON)进行格式化。
示例
$ rdb --format json dump.rdb
[{"key":"value"}]
$ rdb --format protocol dump.rdb
*2
$6
SELECT
$1
0
*3
$3
SET
$3
key
$5
value
测试
使用以下命令运行测试
make test
这将使用cargo运行代码测试,并检查它是否可以解析所有包含的转储文件。
贡献
如果您发现错误或想以其他方式帮忙,请打开问题。
许可证
MIT。见LICENSE。
依赖项
~4.5MB
~85K SLoC