6个版本
0.2.1 | 2024年5月24日 |
---|---|
0.2.0 | 2023年6月9日 |
0.1.3 | 2020年6月12日 |
0.1.2 | 2018年7月30日 |
0.1.1 | 2018年5月9日 |
#90 in 压缩
1,797每月下载量
用于 seripack
41KB
405 行
Blosc
Rust对C-Blosc块压缩库的绑定。
blosc
包为 C-Blosc
,一个用于二进制数据的压缩库,特别是针对数值数组,提供Rust绑定。
使用方法
# Cargo.toml
[dependencies]
blosc = "0.1"
extern crate blosc;
fn main() {
let data: Vec<u32> = vec![1, 1, 2, 5, 8, 13, 21, 34, 55, 89, 144];
let ctx = blosc::Context::new();
let compressed = ctx.compress(&data[..]);
let decompressed = decompress(&compressed).unwrap();
assert_eq!(data, decompressed);
}
许可证
blosc
在MIT许可证下分发。有关详细信息,请参阅 LICENSE-MIT。
lib.rs
:
Rust对C-Blosc块压缩库的绑定。
Blosc是一个针对二进制数据的高性能压缩器,特别擅长压缩类似数据数组的压缩。例如,适合特定统计分布的浮点数,限制范围内的整数,或共享相同对齐方式的指针。它也适用于内容相似的Struct
数组的压缩。
与大多数其他压缩库不同,Blosc是块导向的,而不是流导向的。当整个要压缩/解压缩的数据集一次性可用时,这种方法效果很好。
示例
let data: Vec<u32> = vec![1, 1, 2, 5, 8, 13, 21, 34, 55, 89, 144];
let ctx = Context::new();
let compressed = ctx.compress(&data[..]);
let decompressed = decompress(&compressed).unwrap();
assert_eq!(data, decompressed);
依赖关系
~260–750KB
~18K SLoC