XZ Embedded
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, 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.)
Releases
Releases xz-embedded-20210201 and xz-embedded-20130513 were signed with Lasse Collin's OpenPGP key. The newer releases are signed with Jia Tan's OpenPGP key.
There is no API nor ABI stability guarantee between versions of XZ Embedded.
xz-embedded-20240124.tar.gz (43 KiB) signature |
xz-embedded-20210201.tar.gz (38 KiB) signature |
xz-embedded-20130513.tar.gz (38 KiB) signature |
xz-embedded-20120222.tar.gz (37 KiB) |
xz-embedded-20100702.tar.gz (37 KiB) |
xz-embedded-20090902.tar.gz (35 KiB) |
Development
The project's main repository is on GitHub and is mirrored (with some delay) to git.tukaani.org.
Check out the current source code:
Licensing
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.