Monday, March 14, 2011

QuickLZ compression for haskell

I've finished off a binding to QuickLZ for Haskell, available here. It has a very simple interface and allows you to compress strict bytestrings very easily. It uses QuickLZ v1.5.0, compression level 1, and has support for overlapping decompression too.

Currently there's no implementation for lazy bytestrings. I'm looking into enabling the streaming mode, so you can have a lazy interface, and also wiring up the result to John's enumerator package so you can write enumerator based compression code. I'm currently hitting a strange segfault however when defining a non-zero QLZ_STREAMING_BUFFER flag for the QuickLZ code, so I'll have to investigate that (and make sure it's not just me doing something dumb.)

Comments welcome.