@hackage / streamly-lz4

Streamly combinators for LZ4 compression

Latest0.1.2

About

Metadata

  • Last updated , by adithyaov
  • License Apache-2.0
  • Categories Streaming
  • Maintained by: streamly@composewell.com

  • Lottery factor: 0

Links

Installation

Tested Compilers

  1. 9.2.1
  2. 9.0.1
  3. 8.10.7
  4. 8.8.4
  5. 8.6.5
  6. 8.4.4
  7. 8.2.2

Package Flags

Use the -f option with cabal commands to enable flags

    fusion-plugin (off by default)

    Use fusion plugin for benchmarks and executables

Readme

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.