Compare contents instead of packaging noise
Archive mode walks both containers and compares normalized paths, entry types, sizes, SHA-256 content hashes, and link targets. Archive timestamps, compression levels, member order, and container metadata do not create false differences.
Added, removed, and changed entries remain visible in the same two-sided review model as folder comparison. A changed nested text pair can open directly in a deeper comparison, while extraction is an explicit action.

Know the supported containers
Diff Anything 1.4 supports ZIP and ZIP64, including ZIPX and ZIP-based packages such as JAR, WAR, EAR, APK, AAB, IPA, EPUB, VSIX, NuGet, XPI, Python wheels, CBZ, and OpenDocument files. It also supports 7z, RAR 1.3 through RAR 7, TAR, compressed TAR variants, and standalone Gzip, Bzip2, XZ, and Zstandard streams.
Supported multipart inputs include numbered .7z.001 volume sets, RAR .partNN.rar sets, and legacy .rar/.r00/.s00 sets. Solid 7z and RAR archives and ZIP or RAR self-extracting archives are supported.
- TAR.GZ and TGZ
- TAR.BZ2, TBZ, and TBZ2
- TAR.XZ and TXZ
- TAR.ZST and TZST
Detect renamed containers and compression codecs
Detection uses bounded content signatures as well as filenames, so a supported renamed container can still route to archive mode. ZIP and RAR self-extracting archives are recognized from their embedded signatures.
ZIP readers support Deflate, Deflate64, Bzip2, LZMA, XZ, and Zstandard methods. The 7z reader supports LZMA and LZMA2, PPMd, Bzip2, Deflate, Brotli, LZ4, and Zstandard codecs.
- A filename alone does not override an incompatible signature.
- Unsupported containers stay available for binary comparison.
- Explicit archive mode reports a supported-format error instead of invoking an external unpacker.
Use separate passwords without persisting them
Encrypted ZIP entries support ZipCrypto and WinZip AES, encrypted 7z supports AES-256, and RAR supports encrypted member data and encrypted headers. The two sides may use different passwords.
The desktop asks only when a password is needed or rejected. An accepted password stays in memory for the current source pair and is not written to settings, profiles, history, diagnostics, or comparison exports. TAR and standalone compression streams do not define encryption; use an encrypted ZIP, 7z, or RAR container when encryption is required.
Stream large archives and extraction
Archive inputs are not rejected by the ordinary text-file size setting. Opening reads only a bounded signature prefix, while comparison hashes decompressed data incrementally instead of loading a full archive or member set into frontend memory.
Extraction streams to a temporary file and atomically moves the completed result into place. Opening an entry as text is capped at 128 MiB; a larger member can still be extracted. Cancellation is checked between members and during streaming hash work.
- Duplicate member names produce a warning; the final occurrence is used deterministically.
- The comparison never unpacks the archive into its source directory.
- Left and right sources remain unchanged unless an entry is explicitly extracted elsewhere.
Understand the safety ceilings and exclusions
Archive mode rejects pathological expansion before it can consume unbounded resources. Its ceilings are one million members, 500 GiB for one expanded member, 10 TiB of total expanded content, and 32 KiB member names.
Split ZIP, ACE, ARJ, CAB, ISO or other disk images, and filesystem images are not archive-mode inputs. They remain available to binary comparison, where Diff Anything can report identity and metadata without pretending to understand their internal filesystems.
- 1,000,000 members per archive
- 500 GiB per expanded member
- 10 TiB total expanded content
- 32 KiB member names
- 128 MiB when opening an entry as text