93 lines
4.3 KiB
Text
93 lines
4.3 KiB
Text
Description
|
|
|
|
Lunzip is a decompressor for the lzip format. It is written in C and its
|
|
small size makes it well suited for embedded devices or software
|
|
installers that need to decompress files but don't need compression
|
|
capabilities. Lunzip is fully compatible with lzip-1.4 or newer.
|
|
|
|
The lzip file format is designed for data sharing and long-term
|
|
archiving, taking into account both data integrity and decoder
|
|
availability:
|
|
|
|
* The lzip format provides very safe integrity checking and some data
|
|
recovery means. The lziprecover program can repair bit-flip errors
|
|
(one of the most common forms of data corruption) in lzip files,
|
|
and provides data recovery capabilities, including error-checked
|
|
merging of damaged copies of a file.
|
|
|
|
* The lzip format is as simple as possible (but not simpler). The
|
|
lzip manual provides the code of a simple decompressor along with a
|
|
detailed explanation of how it works, so that with the only help of
|
|
the lzip manual it would be possible for a digital archaeologist to
|
|
extract the data from a lzip file long after quantum computers
|
|
eventually render LZMA obsolete.
|
|
|
|
* Additionally the lzip reference implementation is copylefted, which
|
|
guarantees that it will remain free forever.
|
|
|
|
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.
|
|
|
|
Lunzip uses the same well-defined exit status values used by lzip and
|
|
bzip2, which makes it safer than decompressors returning ambiguous
|
|
warning values (like gunzip) when it is used as a back end for other
|
|
programs like tar or zutils.
|
|
|
|
Lunzip provides a "low memory" mode able to decompress any file using as
|
|
little memory as 50 kB, irrespective of the dictionary size used to
|
|
compress the file. To activate it, specify the size of the output buffer
|
|
with the "--buffer-size" option and lunzip will use the decompressed
|
|
file as dictionary for distances beyond the buffer size. Of course, the
|
|
smaller the buffer size used in relation to the dictionary size, the
|
|
more accesses to disk are needed and the slower the decompression is.
|
|
This "low memory" mode only works when decompressing to a regular file
|
|
and is intended for systems without enough memory (RAM + swap) to keep
|
|
the whole dictionary at once. It has been tested on a laptop with a 486
|
|
processor and 4 MiB of RAM.
|
|
|
|
The amount of memory required by lunzip to decompress a file is about
|
|
46 kB larger than the dictionary size used to compress that file, unless
|
|
the "--buffer-size" option is specified.
|
|
|
|
Lunzip attempts to guess the name for the decompressed file from that of
|
|
the compressed file as follows:
|
|
|
|
filename.lz becomes filename
|
|
filename.tlz becomes filename.tar
|
|
anyothername becomes anyothername.out
|
|
|
|
Decompressing a file is much like copying or moving it; therefore lunzip
|
|
preserves the access and modification dates, permissions, and, when
|
|
possible, ownership of the file just as "cp -p" does. (If the user ID or
|
|
the group ID can't be duplicated, the file permission bits S_ISUID and
|
|
S_ISGID are cleared).
|
|
|
|
Lunzip is able to read from some types of non regular files if the
|
|
"--stdout" option is specified.
|
|
|
|
If no file names are specified, lunzip decompresses from standard input
|
|
to standard output. In this case, lunzip will decline to read compressed
|
|
input from a terminal.
|
|
|
|
Lunzip 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.
|
|
|
|
The ideas embodied in lunzip 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).
|
|
|
|
|
|
Copyright (C) 2010-2016 Antonio Diaz Diaz.
|
|
|
|
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
|
|
Makefile. It has the same copyright owner and permissions that configure
|
|
itself.
|