Plzip

lzip logo

Introduction

Plzip is a massively parallel (multi-threaded) implementation of lzip, compatible with lzip 1.4 or newer. Plzip uses the compression library lzlib.

Lzip is a lossless data compressor with a user interface similar to the one of gzip or bzip2. Lzip uses a simplified form of the 'Lempel-Ziv-Markov chain-Algorithm' (LZMA) stream format to maximize interoperability. The maximum dictionary size is 512 MiB so that any lzip file can be decompressed on 32-bit machines. Lzip provides accurate and robust 3-factor integrity checking. Lzip can compress about as fast as gzip (lzip -0) or compress most files more than bzip2 (lzip -9). Decompression speed is intermediate between gzip and bzip2. Lzip is better than gzip and bzip2 from a data recovery perspective. Lzip has been designed, written, and tested with great care to replace gzip and bzip2 as the standard general-purpose compressed format for Unix-like systems.

Plzip can compress/decompress large files on multiprocessor machines much faster than lzip, at the cost of a slightly reduced compression ratio (0.4 to 2 percent larger compressed files). Note that the number of usable threads is limited by file size; on files larger than a few GB plzip can use hundreds of processors, but on files of only a few MB plzip is no faster than lzip.

For creation and manipulation of compressed tar archives tarlz can be more efficient than using tar and plzip because tarlz is able to keep the alignment between tar members and lzip members.

When compressing, plzip divides the input file into chunks and compresses as many chunks simultaneously as worker threads are chosen, creating a multimember compressed file.

When decompressing, plzip decompresses as many members simultaneously as worker threads are chosen. Files that were compressed with lzip are not decompressed faster than using lzip (unless the option '-b' was used) because lzip usually produces single-member files, which can't be decompressed in parallel.

In this plzip benchmark page you can find some tests showing the performance of plzip on a multiprocessor machine.

The lzip file format is designed for data sharing and long-term archiving, taking into account both data integrity and decoder availability:

A nice feature of the lzip format is that a corrupt byte is easier to repair the nearer it is from the beginning of the file. Therefore, with the help of lziprecover, losing an entire archive just because of a corrupt byte near the beginning is a thing of the past.

Plzip uses the same well-defined exit status values used by lzip, which makes it safer than compressors returning ambiguous warning values (like gzip) when it is used as a back end for other programs like tar or zutils.

Documentation

The manual is available in the info system of the GNU Operating System. Use info to access the top level info page. Use info plzip to access the plzip section directly.

An online manual for plzip can be found at manual/plzip_manual.html.

Download

The latest released version of plzip can be found at http://download.savannah.gnu.org/releases/lzip/plzip/. Plzip requires lzlib to build. Lzlib is available at http://www.nongnu.org/lzip/lzlib.html. You may also subscribe to lzip-bug and receive an email every time a new version is released.

Hannes Domani kindly provided a Windows port of plzip that can also be downloaded from the Savannah download link just above.

You may compile and optionally install plzip by running the following commands:

tar -xf plzip[version].tar.gz
cd plzip[version] && ./configure && make check

then (as root) type:

make install

Once plzip is installed, the files from archive "foo.tar.lz" can be extracted using the command "plzip -cd foo.tar.lz | tar -xf -".

How to get help

For general discussion of bugs in plzip the mailing list lzip-bug@nongnu.org is the most appropriate forum. Please send messages as plain text. Please do not send messages encoded as HTML nor encoded as base64 MIME nor included as multiple formats. Please include a descriptive subject line. If all of the subject are "bug in plzip" it is impossible to differentiate them.

An archive of the bug report mailing list is available at http://lists.gnu.org/mailman/listinfo/lzip-bug.

How to help

To contact the author, either to report a bug or to contribute fixes or improvements, send mail to lzip-bug@nongnu.org. Please send messages as plain text. If posting patches they should be in unified diff format against the latest version. They should include a text description.

See also the lzip project page at Savannah.

Licensing

Plzip is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

Valid HTML 4.01 Strict


Copyright © 2023 Antonio Diaz Diaz
Lzip logo Copyright © 2013 Sonia Diaz Pacheco

You are free to copy, modify, and distribute all or part of this article without limitation.

Updated: 2023-12-30

This page does not use javascript.