minihuff is a data compression library with a simple new twist on Huffman coding. Instead of storing the frequency analysis for some set of data with the data itself, minihuff enables the creation of a static frequency table to be stored at both ends of a connection. This allows effective compression even for very small pieces of data that maintain similar entropy characteristics.
Current version: 1.0
Please note that minihuff is written entirely in portable C as it is intended primarily for embedded applications. This is also why I haven't gone to a lot of trouble in the distribution. There aren't, after all, a lot of Linux distros for the 8051 yet.
For more information about Huffman coding, please see Introduction to Algorithms, by Corman, Leiserson and Rivest (CLR), § 17.3. If you're looking for a web reference, you might start at Wiki's entry on the subject.
I have tested this library in my own code for some time, so I hope it is at least somewhat robust barring any distribution bugs. It has been used successfully between an 8051 (big endian) and a Pentium 4 (little endian). I hope I've also solved some floating point portability issues for good.
Nonetheless, there naturally may be bugs remaining. If you can find any - or if it just doesn't work! - I would very much appreciate a note with as much detail as possible on the problem.
I've been playing with minihuff for a while, and it seems stable enough. I thought I'd just drop it on the public in case there's one or two people out there that have this same itch. Note that minihuff is being released under the LGPL so you may use it in non-open source projects in its library form. As usual, any changes to the code should be made public. Hopefully that means you'll send a patch to me!
Naturally, if you're only interested in making a suggestion or (gasp!) bug report, please drop me a line either via email or, for extra fun, via one of the trackers for the project.