Introduction
XZ Embedded is a 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.
Features:
-
Compiled code is 8–20 KiB.
-
Supports both single-call and multi-call API.
-
About 30 KiB is needed in single-call mode. Multi-call mode needs memory also for the dictionary.
-
LZMA2 and BCJ filters (x86, ARM, ARM-Thumb, ARM64, RISC-V, PowerPC, IA-64, SPARC). BCJ filters can be enabled or disabled individually from the build to reduce code size.
-
CRC32 and (optionally) CRC64 are supported for checking the integrity of the headers and optionally the uncompressed data. (The version included in the Linux kernel doesn’t support CRC64.)
Source code
The latest code can be cloned from the Git repository on GitHub:
git clone https://github.com/tukaani-project/xz-embedded
The repository is mirrored to git.tukaani.org as well.
There are no release packages and no API/ABI stability guarantees.
Licensing
Since the commits made in March 2024, XZ Embedded is under the BSD Zero Clause License (0BSD). Older versions are in the public domain.
Reporting bugs
Bugs can be reported on GitHub or via email or IRC. If a security issue has been discovered, please report it privately via email (encrypted if possible) or use the Report a vulnerability button in the security section on GitHub.