6 releases
0.2.1 | May 24, 2024 |
---|---|
0.2.0 | Jun 9, 2023 |
0.1.3 | Jun 12, 2020 |
0.1.2 | Jul 30, 2018 |
0.1.1 | May 9, 2018 |
#98 in Compression
2,685 downloads per month
Used in seripack
41KB
405 lines
Blosc
Rust bindings for the C-Blosc compression library.
The blosc
crate provides Rusty bindings for C-Blosc
, a
compression library for binary data, especially numeric arrays.
Usage
# 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);
}
License
blosc
is distributed under the MIT license. See
LICENSE-MIT for details.
lib.rs
:
Rust bindings for the C-Blosc block-oriented compression library.
Blosc is a high performance compressor optimized for binary data. It is
especially good at compressing arrays of similar data. For example, floats
that fit a particular statistical distribution, integers from a restricted
range, or pointers that all share the same alignment. It also works well on
arrays of Struct
s with similar content.
Unlike most other compression libraries, Blosc is block-oriented, rather than stream-oriented. This works well when the entire dataset to be compressed/decompressed is available at once.
Example
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);
Dependencies
~240–740KB
~17K SLoC