Files
yacreader/compressed_archive/libarchive
luisangelsm 3709b6e737
Some checks failed
Build / Initialization (push) Has been cancelled
Build / Code Format Validation (push) Has been cancelled
Build / Linux (Qt6) (push) Has been cancelled
Build / Linux (Qt6 + 7zip) (push) Has been cancelled
Build / macOS (Qt6 Universal) (push) Has been cancelled
Build / Windows x64 (Qt6) (push) Has been cancelled
Build / Windows ARM64 (Qt6) (push) Has been cancelled
Build / Docker amd64 Image (push) Has been cancelled
Build / Docker arm64 Image (push) Has been cancelled
Build / Publish Dev Builds (push) Has been cancelled
Build / Publish Release (push) Has been cancelled
Build / Publish YACReader10 Pre-release Builds (push) Has been cancelled
Format includes using clang-format
2026-03-13 18:21:38 +01:00
..

libarchive Decompression Backend

This backend utilizes the libarchive library to support a wide variety of compression formats.

This backend is currently only supported on the Linux platform.

Using

Enable this backend by setting the DECOMPRESSION_BACKEND CMake option:

cmake -B build -DDECOMPRESSION_BACKEND=libarchive

Upon success, the application can be built as normal.

Limitations

  • libarchive has a stream-based architecture that does not (currently) offer random access. In practice, this means that you can only seek forward and would have to re-open an archive to read an entry before the current position. This doesn't seem to have a huge performance hit and can be mitigated by creating properly sorted archives.
  • 7z decompression is slow (but seems to be slightly faster than unarr)