summaryrefslogtreecommitdiffstats
path: root/README
blob: 400ef936836a885e1e98a7fc7e9233d80e88a9aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Description

Lzd is a simplified decompressor for lzip files with an educational
purpose. Studying its source is a good first step to understand how lzip
works. It is not safe to use lzd for any real work.

The source 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.

Lzd decompresses from standard input to standard output. 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.

The lzip file format is designed for long-term data 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 lzip 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.

The ideas embodied in lzd 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), and Igor Pavlov (for putting all the above together in
LZMA).


Copyright (C) 2013, 2014 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.