2个版本
0.1.1 | 2021年4月16日 |
---|---|
0.1.0 | 2021年4月16日 |
#1418 在 编码
每月118 次下载
在 6 个crate中使用 (2 直接使用)
14KB
131 代码行
rcobs
反向-COBS编码(rCOBS)是COBS编码的一种变体,旨在允许零预览编码。
COBS和rCOBS用于将消息流包装成字节流(如UART或TCP)的帧。COBS编码确保编码的消息不包含0x00
字节,因此可以使用0x00
字节作为消息分隔符。
标准COBS将输入分成以零字节分隔的最多254字节的块,并在它们前面加上长度字节。这在进行流编码时需要最多254字节的预览。
rCOBS在块的末尾而不是开始处输出长度字节,完全消除了编码时的预览需求。权衡是解码现在必须从消息的末尾开始反向进行,因此不可能进行预览。在解码之前必须读取整个消息。
这使得rCOBS非常适合在受限制的嵌入式系统中编码数据,并在更强大的系统中解码数据的情况,在这种情况下,完整的缓冲要求不是问题。
示例
为您的方便,块由双空格分隔。
Message: 11 22 33 44
COBS-encoded: 05 11 22 33 44
rCOBS-encoded: 11 22 33 44 05
Message: 11 22 00 33
COBS-encoded: 03 11 22 02 33
rCOBS-encoded: 11 22 03 33 02
Message: 11 00 00 00 42 42 42
COBS-encoded: 02 11 01 01 04 42 42 42
rCOBS-encoded: 11 02 01 01 42 42 42 04
许可
本作品根据以下任一许可发布:
- Apache License,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您根据Apache-2.0许可所定义的任何有意提交给作品的作品,都将如上所述双重许可,不附加任何额外的条款或条件。