Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

pigz is a command-line gzip replacement that uses multiple CPU cores to compress data in parallel. It can create and extract gzip files, but its main parallel-speed advantage is during compression; ordinary gzip-stream decompression is not split across arbitrary cores in the same way.

What is pigz?

The name stands for “Parallel Implementation of GZip.” Written by Mark Adler, pigz is described in the project README as a fully functional gzip replacement that exploits multiple processors and cores when compressing data. It is useful when you want gzip-compatible output and have CPU capacity available to compress a large file or data stream.

pigz can produce gzip output, as well as zlib and single-entry ZIP output using DEFLATE. Its core purpose is not a different compression format: it is to parallelize compression work while preserving the expected output format.

How does pigz use multiple cores?

During compression, pigz divides the input into chunks. The project implementation notes describe 128 KB chunks: compression jobs run concurrently, then a writer emits the compressed pieces in their original order. This lets pigz use multiple cores for work that ordinary gzip typically performs serially.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Decompression is different. A general DEFLATE stream cannot be divided among an arbitrary number of processors in the same way, so pigz uses one main decompression thread. It may use helper threads for reading, writing, and checksum calculation in some circumstances, but do not assume that extracting a .gz file will scale across all your CPU cores.

How to compress and decompress files

pigz is commonly used like gzip: provide a filename to compress, or select decompression with -d. The exact behavior around source files can depend on options; use -k when you explicitly want to retain the original.

  1. Compress a file: run pigz filename. pigz creates a gzip-compressed file, conventionally named filename.gz.
  2. Keep the original while compressing: run pigz -k filename.
  3. Decompress a gzip file: run pigz -d filename.gz.
  4. Write output to standard output: use -c, for example pigz -c filename > filename.gz. This is useful in shell pipelines and lets you control the output destination.
  5. Check compressed input integrity: run pigz -t filename.gz.

For the complete option syntax and behavior, consult the pigz manual.

Which pigz options matter most?

Option Effect When to consider it
-1 or --fast Faster compression with less compression. When compression time matters more than minimizing output size.
-6 Default compression level. A general-purpose starting point.
-9 or --best Slower compression with better compression. When a smaller file is worth additional processing time.
-11 Uses Zopfli; the manual describes a few percent better compression at a severe execution-time cost. For cases where reducing size is especially important and long runtimes are acceptable.
-p n Sets the process limit. The default is the number of online processors. To limit CPU use or tune process count for a shared machine.
-b mmm Sets block size; the documented default is 128 KiB. When tuning block size for a particular workload.
-i Makes blocks independent for damage recovery. When independently recoverable blocks are useful, with the trade-off determined by the output and use case.

These are documented controls, not guarantees of a particular speed or file size. Results depend on the processor, storage, input data, and competing workload. Test representative files on the machine where you plan to run pigz rather than treating any one level or process count as universally best.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to install or build pigz

Installation instructions vary by operating system and package repository, so there is no single package-manager command that applies everywhere. Check your OS repository for an available pigz package and its version.

The project README documents building on Unix-style systems with zlib and pthread libraries. It says zlib 1.2.3 or later is required to compile and recommends 1.2.6 or later. The documented basic build is to run make, put the resulting executable somewhere on your PATH, then run pigz to display command help. Consult the README for platform-specific details.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What is the latest pigz version?

The official pigz home page listed source release 2.8, dated 19 August 2023, when checked on 3 October 2026. The page provides a tar.gz archive, a SHA-256 checksum, and a GPG signature. Package repositories may carry different versions, so check the official pigz page and your distribution’s package listing for the release available to you. The project lists the SHA-256 checksum for that source archive as eb872b4f0e1f0ebe59c9f7bd8c506c4204893ba6a8492de31df416f0d5170fd0.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.