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.