TLZStoreDecompressor
Lempel-Ziv encodes stream of data as series of binary tokens. There are two variants of tokens: one does contain literal bytes inside, second is just len-offset pair.
This is how example string "package1xxxxABCD000100020003XXXXxxxxpackage0package1" would be compressed:
Of course, literal lengths, offsets and copylengths are not stored as plain bytes. Copy lengths are encoded with "fixed" variable length code. Literal length also is fixed variable length code. Offsets are encoded in different way, depending on maximum offset stored in file so far, and actual decompress buffer size.
Copy lengths are between 1 and 12 bits long, and can represent values up to 129. Literal lengths take from 1 to 10 bits, and can represent values between 1 and 63. Offsets can be between 1 and 12 bits long, and can point in maximum 0x1a00 bytes back in decompress buffer.
Decompression library
I have written library in C++ for compression and decompression of LZ compressed data. It's available in Downloads section.

