2025-02-20 14:07:18 +01:00
|
|
|
Description
|
|
|
|
|
2025-02-20 14:53:48 +01:00
|
|
|
Lzd is a simplified decompressor for the lzip format with an educational
|
2025-02-20 15:08:12 +01:00
|
|
|
purpose. Studying its source code is a good first step to understand how
|
|
|
|
lzip works. Lzd is written in C++.
|
2025-02-20 14:07:18 +01:00
|
|
|
|
2025-02-20 15:08:12 +01:00
|
|
|
The source code of lzd is used in the lzip manual as a reference
|
|
|
|
decompressor in the description of the lzip file format. Reading the lzip
|
|
|
|
manual will help you understand the source code. Lzd is compliant with the
|
|
|
|
lzip specification; it verifies the 3 integrity factors.
|
2025-02-20 14:07:18 +01:00
|
|
|
|
2025-02-20 15:08:12 +01:00
|
|
|
The source code of lzd is also used as a reference in the description of the
|
2025-02-20 15:06:26 +01:00
|
|
|
media type 'application/lzip'.
|
|
|
|
See http://datatracker.ietf.org/doc/draft-diaz-lzip
|
|
|
|
|
|
|
|
Lzd decompresses from standard input to standard output. It accepts (and
|
|
|
|
ignores) the option '-d' for compatibility with other lzip tools. In
|
|
|
|
particular, accepting the option '-d' allows lzd to be used as argument to
|
|
|
|
the option '--lz' of the tools from the zutils package.
|
|
|
|
|
|
|
|
Lzd will correctly decompress the concatenation of two or more compressed
|
|
|
|
files. The result is the concatenation of the corresponding decompressed
|
|
|
|
data. Integrity of such concatenated compressed input is also verified.
|
2025-02-20 14:07:18 +01:00
|
|
|
|
2025-02-20 15:04:13 +01:00
|
|
|
The lzip file format is designed for data sharing and long-term archiving,
|
|
|
|
taking into account both data integrity and decoder availability:
|
2025-02-20 14:45:15 +01:00
|
|
|
|
|
|
|
* The lzip format provides very safe integrity checking and some data
|
2025-02-20 15:06:26 +01:00
|
|
|
recovery means. The program lziprecover 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 source 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.
|
2025-02-20 14:45:15 +01:00
|
|
|
|
2025-02-20 14:53:48 +01:00
|
|
|
* Additionally the lzip reference implementation is copylefted, which
|
|
|
|
guarantees that it will remain free forever.
|
2025-02-20 14:45:15 +01:00
|
|
|
|
2025-02-20 15:06:26 +01:00
|
|
|
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.
|
2025-02-20 14:45:15 +01:00
|
|
|
|
2025-02-20 14:07:18 +01:00
|
|
|
The ideas embodied in lzd are due to (at least) the following people:
|
2025-02-20 15:08:12 +01:00
|
|
|
Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrei Markov (for the
|
2025-02-20 15:06:26 +01:00
|
|
|
definition of Markov chains), G.N.N. Martin (for the definition of range
|
|
|
|
encoding), and Igor Pavlov (for putting all the above together in LZMA).
|
2025-02-20 14:07:18 +01:00
|
|
|
|
|
|
|
|
2025-02-20 15:08:12 +01:00
|
|
|
Copyright (C) 2013-2022 Antonio Diaz Diaz.
|
2025-02-20 14:07:18 +01:00
|
|
|
|
|
|
|
This file is free documentation: you have unlimited permission to copy,
|
2025-02-20 15:06:26 +01:00
|
|
|
distribute, and modify it.
|
2025-02-20 14:07:18 +01:00
|
|
|
|
|
|
|
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.
|