#integer #vlq #leb128 #encoding #varint #optimization

无 std vint64

简单且高效的变长整数编码,与某些 VLQ(变长量)变体兼容

8 个版本 (2 个稳定版)

1.0.1 2020 年 3 月 31 日
1.0.0 2020 年 3 月 17 日
0.3.0 2020 年 2 月 28 日
0.2.1 2020 年 2 月 25 日
0.1.2 2019 年 1 月 31 日

#1009解析器实现

Download history 516/week @ 2024-04-20 1293/week @ 2024-04-27 714/week @ 2024-05-04 1492/week @ 2024-05-11 1074/week @ 2024-05-18 754/week @ 2024-05-25 555/week @ 2024-06-01 604/week @ 2024-06-08 733/week @ 2024-06-15 868/week @ 2024-06-22 1237/week @ 2024-06-29 902/week @ 2024-07-06 1069/week @ 2024-07-13 819/week @ 2024-07-20 747/week @ 2024-07-27 1029/week @ 2024-08-03

每月 3,878 次下载
用于 2 crates

Apache-2.0

18KB
247

vint64 Crate Docs Apache 2.0 Licensed MSRV Safety Dance Build Status

vint64 是一个 64 位小端整数变长编码的实现,它优化了简单性和性能。

文档

关于

此 crate 实现了 64 位小端整数(有时也称为变长量或 "VLQ")的变长编码,具有多项特性,使其在几乎所有方面都优于其他变长整数编码,如 LEB128、SQLite "Varuints" 或 CBOR

  • 能够用最多 9 个字节表达完整的 64 位整数范围
  • 可以通过第一个字节单独确定 vint64 的总长度
  • 为范围内的每个值提供可能的最紧凑编码
  • 编码/解码不需要循环

这种编码的一些先例可以在 可扩展二进制元语言(例如,由 Matroska 媒体容器格式使用)中找到,但是请注意,该格式中使用的特定 "vint" 类型解码时仍然需要循环。

许可证

版权所有 © 2019-2020 Tony Arcieri

本文件基于Apache许可证第2版(以下简称“许可证”);除非遵守许可证,否则您不得使用此文件。您可以在以下地址获取许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件是以“现状”为基础分发的,不提供任何形式的保证或条件,无论是明示的还是默示的。有关许可证的具体语言规定权限和限制,请参阅许可证。

贡献

除非您明确声明,否则您有意提交以包含在作品中的任何贡献都将按上述方式双重许可,不附加任何额外的条款或条件。

无运行时依赖