4 个版本
0.1.0 | 2020年11月15日 |
---|---|
0.0.3 | 2020年10月1日 |
0.0.2 | 2020年9月21日 |
0.0.1 | 2020年9月11日 |
#5 in #multi-format
210KB
4K SLoC
多格式
一组旨在使系统具有未来兼容性的协议,主要通过增强格式值以实现自描述。这允许互操作性、协议灵活性,并帮助我们避免锁定。
协议的自描述方面有一些规定
- 它们必须是 in-band(与值一起);而不是 out-of-band(在上下文中)。
- 它们必须避免 锁定 并促进可扩展性。
- 它们必须是 紧凑 并具有 二进制打包表示。
- 它们必须有 可读性。
无符号 varint
在所有多格式中使用 VARiable INTeger 格式。编码如下
- 无符号整数以每次 7 位进行序列化,从最低有效位开始。
- 每个输出字节中的最高有效位(msb)表示是否有后续字节(msb = 1)。
- 没有有符号整数。
- 整数是最小编码的。
有关详细信息,请参阅unsigned-varint 规范。
多基
基数编码是将二进制数据转换为纯文本。有几个基数编码定义可以将二进制数据转换为通常为 ASCII 代码的小子集。用途:
- 可打印字符集。
- 向后兼容的桥梁。
- 当通道无法或不允许二进制数据时。
有关详细信息,请参阅multibase。
多解码器
多解码器是一个约定的解码器表。它设计用于二进制表示,如键或标识符(例如 CID)。在 table.csv 中找到多解码器的规范表。
有关详细信息,请参阅multicodec 规范。
参考:
活跃的多格式规范列表。
- 微站,http://multiformats.io
- 无符号 varint,https://github.com/multiformats/unsigned-varint
- 多解码器,https://github.com/multiformats/multicodec
还有其他更适合您需求的实现
依赖关系
~5MB
~101K SLoC