lz4_flex
Pure Rust, high performance implementation of LZ4 compression.
This is based on redox-os' lz4 compression. The redox implementation is quite slow with only around 300MB/s decompression, 200MB/s compression and the api ist quite limited. This shortcomings are addressed.
Usage:
use ;
Features
- Very good logo
- LZ4 Block format
- High performance
- 1s clean release build time
- feature flags to configure safe/unsafe code usage
Benchmarks
The benchmark is run with criterion on set of test files are in the folder benches.
Currently 3 implementations are compared, this one, the redox version and the c++ version via rust bindings
cargo bench
Results v0.3 18-10-2020
Executed on Macbook Pro 2017 i7
- lz4_redox_rust: https://crates.io/crates/lz4-compress
- lz4_cpp: https://crates.io/crates/lz4
- lz-fear: https://github.com/main--/rust-lz-fear
Fuzzer
This fuzz target fuzzes, and asserts compression and decompression returns the original input.
cargo fuzz run fuzz_target_1
TODO
- Frame format
- High compression
- no
unsafe
version for decompression