summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README62
1 files changed, 62 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..fae23bc
--- /dev/null
+++ b/README
@@ -0,0 +1,62 @@
+Description
+
+Lzd is a simplified decompressor for the lzip format with an educational
+purpose. Studying its source code is a good first step to understand how
+lzip works. Lzd is written in C++.
+
+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.
+
+The source code of lzd is also used as a reference in the description of the
+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.
+
+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 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.
+
+ * 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.
+
+The ideas embodied in lzd are due to (at least) the following people:
+Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrei 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-2022 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.