QuickLZ compression for ByteStrings.
This package provides a high level binding to the QuickLZ compression library for ByteStrings
, under the GPLv2 license. QuickLZ is fast and compresses very well. Check out the home page: http://quicklz.com
This package includes the QuickLZ 1.5.0 source code, at compression level 1 and streaming mode disabled.
The versioning scheme for this package is unusual. QuickLZ tries to be as fast as possible, and will break backwards compatibility to achieve it in newer versions. This versioning scheme reflects the QuickLZ versioning scheme: the first three digits of version w.x.y.z are the quicklz version, with the z
component (and any further needed ones) being updates to this package, not quicklz itself.
Fast compression for Haskell ByteStrings
This library implements Haskell bindings to QuickLZ, a fast compression library. The interface is very simple:
compress :: ByteString -> ByteString
decompress :: ByteString -> ByteString
decompress' :: ByteString -> ByteString -- overlapping decompression
As the name states, QuickLZ is fast - at both compression and decompression. Per their own benchmarks, at compression level 1, QuickLZ 1.5.0 has a compression speed of 308Mbyte/s, and a decompression speed of 358Mbyte/s (their benchmarks, Core i7 920.)
travis-ci.org results:
Installation
Just use cabal:
cabal install quicklz
Join in
File bugs in the GitHub issue tracker.
Master git repository:
git clone https://github.com/thoughtpolice/hs-quicklz.git
Authors
See AUTHORS.txt
.
License.
GPLv2. See LICENSE.txt
for terms of copyright and redistribution.
TODO
This package has some benchmarks and tests associated - I would like to expand the benchmarks to include bigger data sets in the future.
There is currently only an interface for strict ByteString
s.
I would like to implement the streaming mode functionality sometime in the future, perhaps tying it to John Millikin's enumerator package.