(Yet Another) Deflate Decompression Implementation in CL

| | TrackBacks (1)

I have finally gotten around to separating out and cleaning up the Deflate (RFC 1951) decompression routines we have been using in-house for quite some time, and released them under an X-style free license (see links below), for those who need something with a less restrictive license or better performance than is currently freely available1.

The library supports decompression of pure deflate streams, zlib-style (RFC 1950) and gzip-style (RFC 1952) streams, including optional checksum checking. The code should be fully portable across all conforming ANSI Common Lisp implementations, and has been performance tuned for SBCL and CMU CL, and somewhat for Lispworks (CRC-32 checksum code). While the performance does not reach the level of zlib/gzip (by a factor of around 3 to 3.52 on my most recent tests with SBCL), mostly due to stream I/O overhead and a not very sophisticated huffman decoder, it is eminently usable.

Support for compression and ZIP-file handling are currently not included.

Enjoy.

Links


  1. Since publishing this entry, I’ve been made aware of Chipz from Nathan Froyd, which achieves comparable levels of performance and is as free as Deflate; see my newer blog entry for more information.

  2. It seems that on larger files the factor is actually nearer to 1.25-1.5, see this entry for details.

1 TrackBacks

Listed below are links to blogs that reference this entry: (Yet Another) Deflate Decompression Implementation in CL.

TrackBack URL for this entry: http://mt.pierre-mai.de/mt/mt-tb.cgi/21

» Deflate: And then there is Chipz from Pierre R. Mai's Miscellany

So it seems the best way of finding out about lisp packages is releasing a similar package yourself ;): Right on the foot of releasing Deflate, I get to notice Chipz, a similar, but more capable package by Nathan Froyd,... Read More

Pages

Categories

Recent Activity

2010-03-26

  • Pierre tweeted, "Note to self: Don't underestimate the pleasure of a hot steam bath after bike practice... Add episode of The Pipeline for maximum enjoyment."

2010-03-11

  • Pierre tweeted, "Ob #Lisp: anyone know why SBCL would not start up on Windows Server 2008? Is Data Execution Prevention the culprit? Is it a known Problem?"
  • Pierre tweeted, "FWIW the unbelievably heavy snow-fall regularly causing havoc again in MUC is something on the order of 3cm over 6h. Siberia is laughing."
  • Pierre tweeted, "Knowing when Winter has dragged on for too long: When you have come to expect not to be able to fly home same day. http://gdzl.la/7JZ3aw"
  • Pierre posted Knowing when Winter has dragged on for too long: When you have come to expect not to be able to fly home same day.

2010-02-21

  • Pierre tweeted, "Seem to have missed the release of Dr. Strangelove on Blu-ray! Enjoy Ken Adam's set designs in HD: http://bit.ly/bJe6iS /via @gruber"
  • Pierre tweeted, "Relistening of Massive Attack collection prompted by The New Yorker review of Heligoland: http://j.mp/aBKpk1 #lazysundays"

2010-01-26

  • Pierre tweeted, "Debugging SSL/TLS session handshake buffering issues between Apache/mod_ssl/openssl and Safari 4: Lots of fun..."

2010-01-24

2010-01-07

  • Pierre tweeted, "Ingenious use of CG by Alex Roman: http://vimeo.com/7809605 (via @chockenberry)"