README file for zdelta-2.1 library
Dimitre Trendafilov

DISCLAIMER:
zdelta is provided 'as-is', without any express or implied warranty.
The library is provided for research purposes and should not be used to 
compress critical data!

zdelta 2.1 is a general purpose delta compression library. It is implemented
by modifying zlib 1.1.3 source code (http://www.zlib.org). The modifications
are marked in all original zlib 1.1.3 source files. All the code is thread 
safe. The data format used by the libzd library is identical to zlib one. 
For more details see: http://cis.poly.edu/zdelta.

NOTE: none of zdelta source files is identical to the original zlib
files! There was no need to modify many of the original zlib functions,
still there might be constants of functions name changes. 
DO NOT interchange file from the two libraries.


CHANGES FROM zdelta-1.0
1. Supports multiple reference files
2. Supports copies up to 4KB
3. Huffman code space is redesigned
4. Match evaluation is improved
5. Improved reference window pointer movement

CHANGES FROM zdelta-2.0
1. New interface functions supporting streaming are added

NOTE: For multiple reference file support compile with REFNUM=N option 
where N is the desired number (1..4) of referemce files. The default
value is 1. 
NOTE: The number of reference files comes at a price! Based on the selected 
number of reference files the compression may degrade, and/or the memory usage 
may be increased. Do NOT add support for more reference files than you need!!!

The initial motivation for developping zdelta was computing efficient deltas
of HTML files (having size usually up to 64KB). 
That is why the in general the library has poor performance on large files
- currently this is an area of active research.

The inteface functions are documented in file zdlib.h

The libzd library comes with two command line executables:
delta compressor:   ./zdc Reference_file [Target_file [Delta_file] ]
		    ./zdc Reference1..ReferenceN Target Delta
delta decompressor: ./zdu Reference_file [Delta_file [Target_file] ] 
                    ./zdu Reference1..ReferenceN Delta Target
	
If the second or the second and the third parameters are omited, zdc/zdu
will read from the standard input and will write to the standard output.
If there are N>3 arguments, the first N arguments are considered refernece 
files.

To compile the library and run the test program, follow the instructions
given at the top of Makefile.

Questions about libzd should be sent to dtrend01@utopia.poly.edu

Acknowledgments:

  The zlib library was written by Jean-loup Gailly (jloup@gzip.org) and
  Mark Adler (madler@alumni.caltech.edu)


Copyright (C) Dimitre Trendafilov (2002)
