← Back to Blog

Solid vs Non‑Solid Archives: Speed, Size, and Smarter Packaging

Solid archives can squeeze out extra compression by treating many files as one continuous stream, but they change how you extract and update content. This article explains the trade-offs in plain terms and shows when solid compression helps—and when it slows you down.

Solid vs Non‑Solid Archives: Speed, Size, and Smarter Packaging - Image 1 Solid vs Non‑Solid Archives: Speed, Size, and Smarter Packaging - Image 2

What “solid” actually means

In a non‑solid archive (like a typical ZIP), each file is compressed separately. You can think of it as a row of sealed jars—open one jar, and you only touch the contents inside. In a solid archive, multiple files are compressed together as a single stream, more like one long vacuum‑sealed roll. Because the compressor sees many files at once, it can reuse patterns across them and often achieves better compression. Formats approach this differently. ZIP is traditionally non‑solid: every file is its own compressed stream. 7z and RAR can be solid, and TAR becomes effectively solid when you compress the entire tarball with a compressor like XZ or Zstandard—now there’s one big stream. The upside is smaller archives for collections of similar files; the trade‑off is that operations targeting a single file become less direct.

Where solid shines

Solid compression excels when your archive contains many related files that share patterns: source code, logs, textual datasets, or repeated assets with only small differences. When the compressor can carry over a dictionary of repeated strings across files (think function names, import paths, timestamps), it can shrink the whole set more effectively. In practice, switching from non‑solid to solid often reduces size noticeably—sometimes by 10–30% for highly similar text-heavy bundles, and less for mixed content. It’s a great fit for deliverables you’ll extract all at once (e.g., shipping a full project snapshot), archival storage of versioned text corpora, or packaging release artifacts that are consumed together rather than selectively.

Hidden costs you should factor in

Solid archives change the ergonomics of everyday tasks. To extract a single item from a solid stream, tools often need to decompress earlier data to reach the target. That can mean slower single‑file extraction and higher CPU time, especially in the browser or on mobile hardware. Updates become trickier too. Removing or replacing one file inside a solid archive frequently triggers recompressing larger portions of the bundle, so incremental changes are slower. Corruption also propagates differently: damage near the start of a solid stream can affect the ability to recover later files because they depend on earlier dictionary state. And high compression settings (large dictionaries) raise memory usage on decompression, which can be uncomfortable for constrained devices.

Tuning the middle ground

Many tools let you split a solid archive into blocks. Instead of one huge stream, you can make smaller solid chunks by directory or file type. This yields some cross‑file compression gains while preserving faster access to isolated sections. In 7z and RAR, look for options like “solid block size” or settings that group files by extension; with TAR+XZ or TAR+Zstandard you can approximate block boundaries by creating separate tarballs for major subfolders. Compression filters also matter. Preprocessors such as BCJ/BCJ2 help the compressor see structure in compiled machine code, boosting compressibility without changing the binary. Dictionary size and algorithm choice (e.g., LZMA2 vs Zstandard) influence speed/memory/ratio trade‑offs: larger dictionaries tend to improve ratio for repetitive text but increase RAM usage; modern faster codecs like Zstandard can be a better fit when you need frequent random reads with decent compression. Practical approach: group highly similar files into modest solid blocks, keep already‑compressed media (JPEG, MP4) non‑solid or in separate blocks, and choose dictionary sizes aligned with the device that will decompress. This retains much of the benefit without making day‑to‑day workflows cumbersome.

Choosing the right approach for your workflow

If your audience typically opens everything at once—installers, complete project snapshots, or archival bundles—solid compression can be a clear win. If they preview and cherry‑pick files (think grabbing a single log, an image, or a script), non‑solid packaging keeps things responsive. Browser‑based tools handle non‑solid archives especially well because single‑file extraction can happen without scanning the entire stream. For solid sets, plan for longer operations or provide block boundaries so users can fetch exactly the portion they need. Making this decision per project—rather than defaulting to one mode—avoids slow extractions and preserves the compression gains that matter.