XZ Embedded is a relatively small decompressor for the .xz file format. It was developed with the Linux kernel in mind, but it is easily usable in other projects too.
- Compiled code is 8–20 KiB.
- Supports both single-call and multi-call API.
- All the required memory is allocated at initialization time. About 30 KiB is needed in single-call mode. Multi-call mode needs memory also for the dictionary.
- LZMA2 and BCJ filters (x86, PowerPC, ARM, ARM-Thumb, IA-64, SPARC). BCJ filters can be enabled or disabled one at a time from the build to save space.
- CRC32 is supported for checking the integrity of the headers and (optionally) the uncompressed data.
XZ Embedded has been put into the public domain, thus you can do whatever you want with it. All the files in XZ Embedded have been written by Lasse Collin, but some files are heavily based on public domain code written by Igor Pavlov.
The latest code in the Git repository of XZ Embedded should be the best available version. There is no API nor ABI stability guarantee between versions of XZ Embedded.
git clone https://git.tukaani.org/xz-embedded.git
Snapshots from the Git repository are available for those who cannot use Git: