Skip to main content

Format support

Purrchiver reads 30+ formats (counting variants) and writes 20+. The complete matrix is below, grouped by category.

If you’re searching for a specific format and it’s not listed here, see What’s not supported at the bottom — it may be an intentional skip with a documented reason.

How Purrchiver does it

Purrchiver uses three engines, picked per format:

  • libarchive (BSD-2 license) — the primary engine, handles most formats.
  • UnRAR (RarLab freeware, read-only permitted) — handles encrypted RAR.
  • AppleArchive (Apple system framework) — handles AAR (Apple Archive).

There are no shelled-out CLI tools, no 7zz / unar subprocess. Everything is a vendored library inside the app bundle. The app is self-contained.

See the architecture decision record for the full rationale.

Common formats

FormatReadWriteNotes
ZIPThe default for most use. Cross-platform safe.
ZIP + AES-256Modern, secure ZIP encryption. The default when encrypting ZIPs.
ZipCrypto ZIPLegacy ZIP encryption — Purrchiver reads these but won’t write them (see why).
ZIP64ZIP extension allowing archives > 4 GB.
RAR4Older RAR. RAR can’t be written by third-party tools per RarLab’s license.
RAR5Modern RAR. Same restriction on writing.
Multi-part RARBoth .partN.rar and legacy .r00/.r01/… schemes. See Multi-part archives.
Encrypted RARBoth content-encrypted and header-encrypted.
7zBest compression. Good for personal archives.
7z + AES-256Modern, secure 7z encryption. Header-encrypted variant supported.
tarPOSIX, ustar, pax, GNU variants all readable; ustar + pax written.
.tar.gzStandard Unix gzipped tar.
.tar.bz2bzip2-compressed tar.
.tar.xzxz-compressed tar.
.tar.zstZstandard-compressed tar. Modern, fast.
.tar.lzlzip-compressed tar.
gzip (.gz)Single-stream.
bzip2 (.bz2)Single-stream.
xzSingle-stream.
Zstandard (.zst)Single-stream. Modern, fast.
Brotli (.br)Web tooling (nginx, Cloudflare, npm). Via Apple’s Compression framework.
LZMA (.lzma)Predecessor to xz; still in some legacy Linux tarballs.
ISO 9660Includes Joliet + Rock Ridge extensions. Data ISOs only (bootable ISOs on the v1.1 list).

Apple ecosystem

FormatReadWriteNotes
AAR (Apple Archive)Apple’s native format. LZFSE / LZMA / ZLIB compression options. macOS 11+.
XIPApple Signed Archive. Extracts contents without verifying Apple’s signature (use Apple’s installer for signature-trust workflows).
PKGApple flat-package installer. Read-only inspection — Apple’s pkgbuild / productbuild own creation.
MPKGApple meta-package (multi-pkg installer). Same as PKG above.
IPAiOS app bundle. Detected and surfaced as “iOS app bundle”; extracted as the underlying ZIP.
XARThe container used by PKG/MPKG. Standalone read supported.
CPIOPOSIX + SVR4 variants. Same engine that drives XIP.

Unix & Linux

FormatReadWriteNotes
.debDebian package via ar. Read-only peek-inside for Mac devs working with Linux containers.
.rpmRed Hat package peek-inside.
.lz (lzip)GNU archival / scientific use.
.lz4LZ4 frame-format streams.

Legacy & archival

FormatReadWriteNotes
LHA / LZHJapanese / retro-Mac legacy.
CABMicrosoft Cabinet. Older Windows install media.
WARCWeb Archive (Internet Archive crawl format).
.Z (compress)Legacy Unix .Z archives — read-only restoration.

What’s not supported

These are intentional skips. The reason is given for each. The Legacy & niche formats page goes deeper on the “detected but not extracted” formats and tells you what to use instead.

FormatWhy not
RAR (write)RarLab’s UnRAR source license forbids creating RAR encoders from the UnRAR sources. A clean-room reimplementation would be legally permissible but goes against RarLab’s stated wishes — we honor both. Read-only is explicitly permitted and fully supported.
StuffIt (.sit, .sitx)Dead format, abandoned by Smith Micro. Detected; friendly error. See StuffIt files.
ACEProprietary, no clean OSS reader, documented malware-vector history. Detected; friendly error. See Legacy & niche formats.
ARJLong-tail DOS-era legacy. Not in libarchive. Not worth a bespoke reader.
BinHex (.hqx) / MacBinary (.macbin)1990s Mac transport encodings. Detected; friendly error pointing to The Unarchiver. See Legacy & niche formats.
LZO / LRZIP / grzipNiche Linux compressors with GPL-2 libraries that bring MAS-distribution friction not worth it for the user count. Detected; friendly error pointing to CLI tools. See Legacy & niche formats.
.dmgDisk image, not an archive. macOS mounts these natively via double-click. See Disk images.
.exe self-extractorsWindows installers, not archives. Detected; friendly error.

Deferred to v1.1 and later

These are on the roadmap. Not in v1.0 because they’re nice-to-haves rather than essentials.

  • PKG / MPKG write — Apple’s pkgbuild / productbuild are the correct tools for this; out of scope unless real user demand surfaces.
  • DMG read — possible via hdiutil subprocess; deferred to v1.1 scoping.
  • .warc write — niche; web-crawler tooling owns this.
  • Snappy (Google) — Keka writes it; requires linking a separate Snappy library, not a libarchive freebie. Add if user demand surfaces.
  • lzop / lrzip / grzip filters — libarchive has the filter sources gated on GPL-2 dependencies that require MAS compliance work. v1.0 detects and shows a friendly error pointing users at the lzop / lrzip / grzip CLI, or Keka for .lrz. Proper bundled support deferred until user demand justifies the GPL-2-in-MAS workstream.
  • Split-volume ZIP write — split read is in v1.0; write arrives in a later v1.0.x.

How counts are calculated

When the homepage and marketing materials say “30+ read, 20+ write”, they count each variant in the chip list above as one format. That comes out to ~39 read, ~21 write including encryption + multi-part variants.

If you’re searching by extension, you’ll find it in the chip list above under the appropriate category.