Streamly combinators for LZ4 compression.
Compress and decompress streams of data using LZ4 compression. See https://github.com/lz4/lz4 .
streamly-lz4
This library uses the LZ4 compression algorithm https://github.com/lz4/lz4 to compress and decompress a data stream using Haskell Streamly.
Running benchmarks
download-corpora.sh downloads and unpacks the caterbury corpus used for benchmarking.
Run the following commands from the top level directory in the repo:
$ ./download-corpora.sh
$ cabal run bench-lz4 -- --quick
To use fusion-plugin for benchmarks:
$ cabal run --flag fusion-plugin bench-lz4 -- --quick
Benchmarking an external corpus
BENCH_STREAMLY_LZ4_FILE is looked up for file to benchmark. This should contain the absolute path of the target file.
BENCH_STREAMLY_LZ4_STRATEGY is looked up for which benchmarking combinator to run on the target file.
It can contain values of the following structure,
c+speed+bufsized+bufsizer+bufsize
c corresponds to compress, d for decompress and r for resizing.
Example,
$ export BENCH_STREAMLY_LZ4_FILE="path/to/file/"
$ export BENCH_STREAMLY_LZ4_STRATEGY="c+400+640000"
$ cabal bench
The commands above runs the compression bench suite on path/to/file/ with the acceleration value of 500 read as arrays of size 640000 bytes.
Note: For the decompression and resizing bench suite a compressed file is expected as input.