Skip to content

Add support for bzip2, xz, zstd, lzma and zlib and their .tar conterparts - #126

Open
tintou wants to merge 4 commits into
collabora:mainfrom
tintou:tintou/compression-formats
Open

Add support for bzip2, xz, zstd, lzma and zlib and their .tar conterparts#126
tintou wants to merge 4 commits into
collabora:mainfrom
tintou:tintou/compression-formats

Conversation

@tintou

@tintou tintou commented Aug 5, 2026

Copy link
Copy Markdown

Use the right decompression format depending on the file extension.

Closes: #32

tintou and others added 4 commits August 5, 2026 12:29
Extract the per-call-site GzipDecoder wrapping for remote images into a
wrap_async_decoder() helper. Pure refactor, no behavior change.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Support .bz2, .xz, .zst, .lz4, .lzma and .zz images alongside .gz, for
both local files and remote URLs. liblzma is used instead of xz2 to
avoid a native lzma link conflict with async-compression's xz feature.

Fixes collabora#32

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Have each match arm in setup_local_input()/wrap_async_decoder() produce
a boxed decoder wrapped once at the end, instead of repeating the
Decoder/Discarder boilerplate per arm. Behavior-preserving.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Support images wrapped in tar archives (plain .tar and the compressed
.tar.gz/.tgz, .tar.bz2, .tar.xz/.txz, .tar.zst, .tar.lz4, .tar.lzma and
.tar.zz variants), for local files and remote URLs.

Add TarFileReader/AsyncTarFileReader, which stream the first regular
file entry without buffering the whole archive, plus unit tests.

Part of collabora#32

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tintou
tintou force-pushed the tintou/compression-formats branch from 35ba6ae to 2ddd86f Compare August 5, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Implement more decompression algorithms

1 participant