2025-02-17 18:33:31 +01:00
|
|
|
Description
|
|
|
|
|
2025-02-17 20:27:34 +01:00
|
|
|
Clzip is a lossless data compressor with a user interface similar to the
|
|
|
|
one of gzip or bzip2. Clzip decompresses almost as fast as gzip and
|
|
|
|
compresses more than bzip2, which makes it well suited for software
|
|
|
|
distribution and data archiving. Clzip is a clean implementation of the
|
|
|
|
LZMA algorithm.
|
2025-02-17 18:33:31 +01:00
|
|
|
|
2025-02-17 20:27:34 +01:00
|
|
|
Clzip uses the same well-defined exit status values used by lzip and
|
|
|
|
bzip2, which makes it safer when used in pipes or scripts than
|
|
|
|
compressors returning ambiguous warning values, like gzip.
|
2025-02-17 20:24:33 +01:00
|
|
|
|
2025-02-17 18:44:28 +01:00
|
|
|
Clzip uses the lzip file format; the files produced by clzip are fully
|
2025-02-17 20:27:34 +01:00
|
|
|
compatible with lzip-1.4 or newer, and can be rescued with lziprecover.
|
|
|
|
Clzip is in fact a C language version of lzip, intended for embedded
|
|
|
|
devices or systems lacking a C++ compiler.
|
|
|
|
|
|
|
|
The lzip file format is designed for long-term data archiving and
|
|
|
|
provides very safe integrity checking. The member trailer stores the
|
|
|
|
32-bit CRC of the original data, the size of the original data and the
|
|
|
|
size of the member. These values, together with the value remaining in
|
|
|
|
the range decoder and the end-of-stream marker, provide a 4 factor
|
|
|
|
integrity checking which guarantees that the decompressed version of the
|
|
|
|
data is identical to the original. This guards against corruption of the
|
|
|
|
compressed data, and against undetected bugs in clzip (hopefully very
|
|
|
|
unlikely). The chances of data corruption going undetected are
|
|
|
|
microscopic. Be aware, though, that the check occurs upon decompression,
|
|
|
|
so it can only tell you that something is wrong. It can't help you
|
|
|
|
recover the original uncompressed data.
|
2025-02-17 18:44:28 +01:00
|
|
|
|
2025-02-17 20:05:47 +01:00
|
|
|
If you ever need to recover data from a damaged lzip file, try the
|
2025-02-17 20:27:34 +01:00
|
|
|
lziprecover program. Lziprecover makes lzip files resistant to bit-flip
|
|
|
|
(one of the most common forms of data corruption), and provides data
|
|
|
|
recovery capabilities, including error-checked merging of damaged copies
|
|
|
|
of a file.
|
2025-02-17 20:05:47 +01:00
|
|
|
|
2025-02-17 18:33:31 +01:00
|
|
|
Clzip replaces every file given in the command line with a compressed
|
|
|
|
version of itself, with the name "original_name.lz". Each compressed
|
|
|
|
file has the same modification date, permissions, and, when possible,
|
|
|
|
ownership as the corresponding original, so that these properties can be
|
|
|
|
correctly restored at decompression time. Clzip is able to read from some
|
|
|
|
types of non regular files if the "--stdout" option is specified.
|
|
|
|
|
|
|
|
If no file names are specified, clzip compresses (or decompresses) from
|
|
|
|
standard input to standard output. In this case, clzip will decline to
|
|
|
|
write compressed output to a terminal, as this would be entirely
|
|
|
|
incomprehensible and therefore pointless.
|
|
|
|
|
|
|
|
Clzip will correctly decompress a file which is the concatenation of two
|
|
|
|
or more compressed files. The result is the concatenation of the
|
|
|
|
corresponding uncompressed files. Integrity testing of concatenated
|
|
|
|
compressed files is also supported.
|
|
|
|
|
2025-02-17 20:05:47 +01:00
|
|
|
Clzip can produce multi-member files and safely recover, with
|
|
|
|
lziprecover, the undamaged members in case of file damage. Clzip can
|
|
|
|
also split the compressed output in volumes of a given size, even when
|
|
|
|
reading from standard input. This allows the direct creation of
|
|
|
|
multivolume compressed tar archives.
|
2025-02-17 18:33:31 +01:00
|
|
|
|
2025-02-17 20:12:24 +01:00
|
|
|
Clzip is able to compress and decompress streams of unlimited size by
|
|
|
|
automatically creating multi-member output. The members so created are
|
|
|
|
large (about 2^60 bytes each).
|
|
|
|
|
2025-02-17 18:33:31 +01:00
|
|
|
Clzip will automatically use the smallest possible dictionary size
|
2025-02-17 19:14:54 +01:00
|
|
|
without exceeding the given limit. Keep in mind that the decompression
|
|
|
|
memory requirement is affected at compression time by the choice of
|
|
|
|
dictionary size limit.
|
2025-02-17 18:33:31 +01:00
|
|
|
|
|
|
|
Clzip implements a simplified version of the LZMA (Lempel-Ziv-Markov
|
2025-02-17 19:14:54 +01:00
|
|
|
chain-Algorithm) algorithm. The high compression of LZMA comes from
|
|
|
|
combining two basic, well-proven compression ideas: sliding dictionaries
|
|
|
|
(LZ77/78) and markov models (the thing used by every compression
|
|
|
|
algorithm that uses a range encoder or similar order-0 entropy coder as
|
|
|
|
its last stage) with segregation of contexts according to what the bits
|
|
|
|
are used for.
|
2025-02-17 18:33:31 +01:00
|
|
|
|
2025-02-17 19:14:54 +01:00
|
|
|
The ideas embodied in clzip are due to (at least) the following people:
|
|
|
|
Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for
|
|
|
|
the definition of Markov chains), G.N.N. Martin (for the definition of
|
|
|
|
range encoding), Igor Pavlov (for putting all the above together in
|
|
|
|
LZMA), and Julian Seward (for bzip2's CLI and the idea of unzcrash).
|
2025-02-17 18:33:31 +01:00
|
|
|
|
|
|
|
|
2025-02-17 20:12:24 +01:00
|
|
|
Copyright (C) 2010, 2011, 2012, 2013 Antonio Diaz Diaz.
|
2025-02-17 18:33:31 +01:00
|
|
|
|
|
|
|
This file is free documentation: you have unlimited permission to copy,
|
|
|
|
distribute and modify it.
|
|
|
|
|
|
|
|
The file Makefile.in is a data file used by configure to produce the
|
2025-02-17 19:14:54 +01:00
|
|
|
Makefile. It has the same copyright owner and permissions that configure
|
|
|
|
itself.
|