The LZO library implements a number of algorithms with the following characteristics:
Compression is comparable in speed to DEFLATE compression.
Very fast decompression
Requires an additional buffer during compression (of size 8 kB or 64 kB, depending on compression level).
Requires no additional memory for decompression other than the source and destination buffers.
Allows the user to adjust the balance between compression ratio and compression speed, without affecting the speed of decompression.
LZO supports overlapping compression and in-place decompression. It is a block compression algorithm—it compresses and decompresses a block of data. Block size must be the same for compression and decompression. LZO compresses a block of data into matches (a sliding dictionary) and runs of non-matching literals to produce good results on highly redundant data and deals acceptably with non-compressible data, only expanding incompressible data by a maximum of 1/64 of the original size when measured over a block size of at least 1 kB.