zpipe - ZPAQ open standard file compressor with 3 prebuilt compression levels.


  zpipe -[123d] < input > output


zpipe is a ZPAQ compatible file compressor and decompresser that reads from standard input and writes to standard output. Compression supports 3 leves from -1 (fastest) to -3 (smallest). It will decompress archives produced either by zpipe or by other ZPAQ level 1 conforming compressors including zpaq(1).

The ZPAQ standard describes a format consisting of a sequence of blocks that can be decompressed independently in any order. Each block has a description of the decoding algorithm and a sequence of segmemts that must be decompressed in order from the beginning of the block. Each segment has an optional filename, an optional comment, compressed data, and an optional SHA-1 checksum at the end.

Compression with zpipe produces a single block containing a single segment, leaving the filename, comment, and checksum fields empty. The decoding algorithm is one of three models selected by the option -1, -2, or -3.

zpipe will decompress any ZPAQ level 1 compliant archive including archives containing multiple files and self extracting archives. zpipe will ignore the filename, comment, and checksum fields. If the input archive contains more than one named segment (representing multiple files), then all of the output will be concatenated together. Checksum errors will not be caught.

zpipe contains speed optimizations that recognize archives compressed in one of the three built in models (fast, mid, and max in zpaq). However, it will correctly decompress other models.




Compress fastest. Requires 38 MB memory to compress or decompress.
Compress average. Requires 112 MB.
Compress best. Requires 278 MB.


To compress file1 to archive.zpaq with fast compression:

    zpipe -1 < file1 > archive.zpaq

To append file2 to archive.zpaq with best compression:

    zpipe -3 < file2 >> archive.zpaq

To view the concatenation of file1 and file2:

    zpipe -d < archive.zpaq | more






See zpaq*.pdf (ZPAQ Level 1 and later) in section AVAILABILITY . It is anticipated that future levels (ZPAQ-2, ZPAQ-3, etc.) will be backward compatible, such that newer levels can read archives produced by older programs.



bzip2(1) gzip(1) lzma(1) lzop(1) p7zip(1) rzip(1) unace(1) unrar(1) unzip(1) zip(1) zpaq(1)


Program was written by Matt Mahoney <>

Released under license GNU GPL version 3 or (at your option) any later version. For more information about license, visit <>.