
On Thu, 2006-09-21 at 14:20 +0400, Bulat Ziganshin wrote:
Hello Duncan,
Thursday, September 21, 2006, 12:11:28 PM, you wrote:
I'm pleased to announce two new packages: zlib and bzlib which provide functions for compression and decompression in the gzip and bzip2 formats:
that's great! i even think that these libraries should go into ghc's extra-libs package
Both provide pure functions on streams of data represented by lazy ByteStrings:
compress, decompress :: ByteString -> ByteString
i'd plans to add compression support to my Streams library and your work will definitely make simpler my own
about API - while it's great for simple usage, it's not enough universal. i think that the most universal one is using callbacks to read and write memory buffers, as implemented in my own compression library: http://haskell.org/haskellwiki/Library/Compression
Is the code available? I don't see any link to it. Can you think of any examples where one covers more cases than the other? Both can handle the in memory or disk/network cases. Both provide the full range of compression algorithm tuning parameters.
From what it looks like from the examples on that page, you always have to work in the IO monad, so it's less 'universal' in that sense. Can you (de)compress lazily with your system?
Duncan