7个版本 (重大更改)

0.7.0 2023年11月13日
0.6.1 2023年9月2日
0.6.0 2023年8月14日
0.5.0 2023年8月12日
0.1.1 2022年11月11日

#767 in 数据结构

无许可协议

48KB
1K SLoC

Rust的代数标记长度值编码

atlv是一种通用的二进制数据编码,在保留数据叶脊结构的同时,提供可定制的标签并规定最小语义。

value:	quant | binary | union | array
quant:	tag…00(vlq) (vlq)
binary:	tag…01(vlq) len(vlq) byte[len]
union:	tag…10(vlq) value
array:	tag…11(vlq) len(vlq) value[len]
vlq:	0xxxxxxx | 1xxxxxxx vlq
byte:	xxxxxxxx
tag:	xxxxx | xxxxxxx tag

此存储库包含一个用于编码、解码和一般操作atlv数据的Rust crate


lib.rs:

编码和解码atlv值。

代数标记长度值(atlv)是一种二进制数据编码,旨在提供可扩展性、通用性和紧凑性。每个值都有一个可变长度的标签,可以是四种[类型]之一,两种简单和两种递归

  • 数量编码可枚举值,使用可变长度数量
  • 二进制编码字节序列。
  • 联合封装一个单独的值。
  • 数组封装值序列。

此crate提供了一种特质,用于将Rust值直接编码和解码到atlv流中,以及一种类型,用于建模和泛型编码和解码任意atlv值。除非您需要操作或检查无结构atlv值,否则请使用特质。

依赖项

~195KB