XZ

Select XZ with Compression.xz(); Decompressor detects it from its magic number. It requires org.tukaani:xz at runtime; see Additional Formats.

Options: preset (0 to 9; default 6), memoryLimitKiB (reading limit; default 256 MiB) and decompressConcatenated.

Decompressor enforces the default limits; a stream that expands past a ratio of 100 after the first MiB throws LimitExceededException.

Example Usage

XZ Compression
try (Compressor compressor = Compressor.builder(
                Path.of("example.xz"), Compression.xz().preset(6))
        .build()) {
    compressor.write(Path.of("path/to/file.txt"));
}
XZ Decompression
Compression xz = Compression.xz().decompressConcatenated(true);
try (Decompressor decompressor =
        Decompressor.builder(Path.of("example.xz"), xz).build()) {
    decompressor.write(Path.of("path/to/file.txt"));
}