streamly-lz4: Streamly combinators for LZ4 compression

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

Compress and decompress streams of data using LZ4 compression. See https://github.com/lz4/lz4 .


[Skip to Readme]

Properties

Versions 0.1.0, 0.1.1, 0.1.1, 0.1.2
Change log CHANGELOG.md
Dependencies base (>=4 && <5), exceptions (>=0.8 && <0.11), fusion-plugin-types (>=0.1 && <0.2), streamly (>=0.8.1 && <0.8.2) [details]
License Apache-2.0
Copyright 2020 Composewell Technologies
Author Composewell Technologies
Maintainer streamly@composewell.com
Category Codec, Compression, Streamly
Home page https://github.com/composewell/streamly-lz4
Bug tracker https://github.com/composewell/streamly-lz4/issues
Source repo head: git clone https://github.com/composewell/streamly-lz4
Uploaded by adithyaov at 2022-01-03T17:38:39Z

Modules

[Index]

Flags

Manual Flags

NameDescriptionDefault
fusion-plugin

Use fusion plugin for benchmarks and executables

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for streamly-lz4-0.1.1

[back to package description]

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 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.