Crate blosc[][src]

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 Structs 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);

Structs

Buffer

An opaque Blosc-compressed buffer.

Context

Holds basic settings for compress operations.

Enums

Clevel

The desired compression level. Higher levels mean more compression.

Compressor

Compressor selection.

ShuffleMode

Controls Blosc's shuffle operation.

Functions

decompress

Decompress a blosc::Buffer into a newly allocated Vec

decompress_bytes

Decompress arbitrary data into a newly allocated Vec