An archive is divided into a sequence of blocks that can be decompressed independently in parallel. The streaming archive format is designed to be extracted in a single pass. Only the journaling format supports deduplication, directory attributes, and multiple dated file versions. The standard defines two formats - streaming and journaling. The format is believed to be unencumbered by patents.įiles are saved in the ZPAQ level 2 journaling format. The ZPAQ source code includes a public domain API, libzpaq, which provides compression and decompression services to C++ applications. To preserve forward and backward compatibility between versions as the compression algorithm is improved, it stores the decompression algorithm in the archive. It compresses using deduplication and several algorithms ( LZ77, BWT, and context mixing) depending on the data type and the selected compression level. It supports fast incremental update by adding only files whose last-modified date has changed since the previous update. It uses a journaling or append-only format which can be rolled back to an earlier state to retrieve older versions of files and directories. ZPAQ is an open source command line archiver for Windows and Linux.