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