The lzlib compression library provides in-memory LZMA compression and decompression functions, including integrity checking of the decompressed data. The compressed data format used by the library is the lzip format.
Compression/decompression is done by repeteadly calling a couple of read/write functions until all the data has been processed by the library. This interface is safer and less error prone than the traditional zlib interface.
Lzlib will correctly decompress a data stream which is the concatenation of two or more compressed data streams. The result is the concatenation of the corresponding uncompressed data streams. Integrity testing of concatenated compressed data streams is also supported.
All the library functions are thread safe. The library does not install any signal handler. The decoder checks the consistency of the compressed data, so the library should never crash even in case of corrupted input.
Lzlib implements a simplified version of the LZMA (Lempel-Ziv-Markov chain-Algorithm) algorithm. The original LZMA algorithm was designed by Igor Pavlov. For a description of the LZMA algorithm, see the lzip manual.
The library is available as 32-bit and 64-bit:
- If you are compiling a 32-bit program, no special compiler options are needed.
- If you are compiling a 64-bit program, you have to compile and link your application with "cc -q64" or "gcc -maix64".