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+bufsize
d+bufsize
r+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.