2个不稳定版本
0.3.0 | 2021年12月11日 |
---|---|
0.2.0 | 2021年1月2日 |
#1918 in 编码
62KB
1.5K SLoC
cbor-tools
是一个用于操作CBOR编码数据的工具集。
CBOR 是一种在RFC7049中描述的数据序列化格式。CBOR是一种对二进制友好的自描述数据编码,它内置了以下类型:
- 整数和浮点数
- 数组和映射
- 任意长度的UTF-8文本字符串
- 任意长度的字节数组
其他crate(例如serde_cbor
)提供了原生Rust数据结构的serde
序列化和反序列化。
这个crate提供了构建和解析CBOR的工具,具有细粒度控制,包括:
- 无限长度编码
- 非规范整数编码
- 标记类型
- 可能在严格模式解码器中失败的序列
- 格式错误的序列(可能是用于测试解码器)
- 显示低级CBOR编码数据
要将数据编码为CBOR,创建一个或多个CborType
值,然后调用它们上的encode()
use cbor_tools::{CborType, Encode};
let my_data = vec![1, 2, 3];
let cbor_tree = CborType::from(my_data);
let cbor_bytes = cbor_tree.encode();
// cbor_bytes is a Vec<u8>
对于许多简单类型,存在一个可用的From<T>
实现。可以通过手动构建其他数据结构,如下面的异构数组:
use cbor_tools::{CborType, Encode};
// An array containing a string and an integer.
let list = vec![
CborType::from("abc"),
CborType::from(123),
];
let cbor_tree = CborType::from(list);
let cbor_bytes = cbor_tree.encode();
// cbor_bytes is a Vec<u8>
可以使用Decode
特质来执行任意CBOR数据的解码。
要检查CBOR编码数据的底层细节,请使用DecodeSymbolic
特质,它可选地实现了Display
,如果启用了display
功能。
依赖项
~2.5MB
~49K SLoC