Expand description
Safe Rust port of the LZO1X compression algorithm.
§Examples
Compression and decompression:
let data = &[0xaa; 100];
let compressed = lzo1x::compress(data, lzo1x::CompressLevel::default());
assert_eq!(compressed.len(), 34);
let mut decompressed = vec![0; data.len()];
lzo1x::decompress(&compressed, &mut decompressed).unwrap();
assert_eq!(decompressed, data);
Slow but optimized pre-compression:
let data = &[0xaa; 100];
let mut compressed = lzo1x::compress(data, lzo1x::CompressLevel::new(13).unwrap());
lzo1x::optimize(&mut compressed, data.len());
assert_eq!(compressed.len(), 9);
§Comparison with original implementation
All functionality has been completely cross-tested against the original C implementation using lzo-sys. Futhermore, all compression functions have been unified on a single level scale according to the table below:
level | C equivalent | C level |
---|---|---|
1 | lzo1x_1_11_compress | |
2 | lzo1x_1_12_compress | |
3 | lzo1x_1_compress | |
4 | lzo1x_1_15_compress | |
5 | lzo1x_999_compress | 1 |
6 | lzo1x_999_compress | 2 |
7 | lzo1x_999_compress | 3 |
8 | lzo1x_999_compress | 4 |
9 | lzo1x_999_compress | 5 |
10 | lzo1x_999_compress | 6 |
11 | lzo1x_999_compress | 7 |
12 | lzo1x_999_compress | 8 |
13 | lzo1x_999_compress | 9 |
Structs§
- Compression level.
- Error that occured during decompression.
Functions§
- Compress the given
src
with the given compressionlevel
. - Decompress the given
src
into the givendst
. - Optimize compressed data given in
src
in terms of decompression speed.