| Crates.io | lz4_decompress |
| lib.rs | lz4_decompress |
| version | 0.13.0 |
| created_at | 2025-12-20 12:29:12.85782+00 |
| updated_at | 2025-12-20 12:29:12.85782+00 |
| description | Pure Rust implementation of lz4 decompression. |
| homepage | https://github.com/traceflight/lz4_decompress |
| repository | https://github.com/traceflight/lz4_decompress |
| max_upload_size | |
| id | 1996453 |
| size | 91,277 |
Pure Rust implementation of lz4 decompression.
Fork of the awesome lz4_flex, modified to support decompressing data without providing the minimal uncompressed size.
The block format is only valid for smaller data chunks as block is decompressed in memory. For larger data use the frame format, which consists of multiple blocks.
use lz4_decompress::block::{decompress_safe, decompress};
use lz4_flex::block::compress_prepend_size;
fn main(){
let input: &[u8] = b"Hello people, what's up?";
// we use lz4_flex to compress
let compressed = compress_prepend_size(input);
let uncompressed = decompress_size_prepended(&compressed).unwrap();
assert_eq!(input, uncompressed);
// remove size prefix
let compressed_without_size = &compressed[4..];
// decompress without providing min uncompressed size
let uncompressed = decompress_safe(&compressed_without_size, None).unwrap();
assert_eq!(input, uncompressed);
let uncompressed = decompress(&compressed_without_size, 24).unwrap();
assert_eq!(input, uncompressed);
}