1 个不稳定版本
0.4.0 | 2023年1月4日 |
---|
#598 in 压缩
19KB
360 行
自动压缩数据以减少内存使用的集合
此库提供自动压缩的集合,可以显著减少内存使用,使得原本无法放入内存的大数据集合得以存储。
集合中数据类型的唯一限制是它们必须是 serde 可序列化的。
例如
use compressed_collections::Stack;
let mut compressed_stack = Stack::new();
for _ in 0..(1024 * 1024 * 100) {
compressed_stack.push(1);
}
这仅分配了约 10MB(默认缓冲区大小),而等价的向量大小约为 100MB。
设计目标
- 尽可能提供与标准等效的 API 子集,以便于轻松替换使用。
- 仅实现每种数据结构的有效操作
数据结构
- 栈
- 双端队列
- 映射
许可证
许可协议为以下之一
- Apache 许可协议 2.0 版(《LICENSE-APACHE》或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议(《LICENSE-MIT》或 http://opensource.org/licenses/MIT》)
任选其一。
贡献
除非你明确声明,否则根据 Apache-2.0 许可协议定义,你提交的任何有意包含在工作中的贡献都将按照上述方式进行双重许可,无需附加条款或条件。
依赖
~7.5MB
~293K SLoC