2个版本

0.1.1 2021年4月16日
0.1.0 2021年4月16日

#1418编码

Download history 5/week @ 2024-02-12 8/week @ 2024-02-19 49/week @ 2024-02-26 20/week @ 2024-03-04 28/week @ 2024-03-11 11/week @ 2024-03-18 23/week @ 2024-03-25 50/week @ 2024-04-01 13/week @ 2024-04-08 32/week @ 2024-04-15

每月118 次下载
6 个crate中使用 (2 直接使用)

MIT/Apache

14KB
131 代码行

rcobs

Documentation

反向-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-2.0许可所定义的任何有意提交给作品的作品,都将如上所述双重许可,不附加任何额外的条款或条件。

无运行时依赖