diff options
Diffstat (limited to 'xdelta3/www/xdelta3.html')
-rwxr-xr-x | xdelta3/www/xdelta3.html | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/xdelta3/www/xdelta3.html b/xdelta3/www/xdelta3.html deleted file mode 100755 index 3bddfd9..0000000 --- a/xdelta3/www/xdelta3.html +++ /dev/null | |||
@@ -1,89 +0,0 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | ||
2 | <html> | ||
3 | <head> | ||
4 | <title>Xdelta3 delta compression library (BETA)</title> | ||
5 | <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> | ||
6 | <link rel="stylesheet" type="text/css" href="xdelta3.css"/> | ||
7 | </head> | ||
8 | <body> | ||
9 | |||
10 | <!-- $Format: "$WWWLeftNavBar$" $ --!> | ||
11 | <table cellpadding="20px" width=700> <tr> <td class="leftbdr" valign=top height=600 width=100> <div class="leftbody"> <h1>Xdelta</h1> <a href="xdelta3.html">overview</a><br> <a href="xdelta3-cmdline.html">command line</a><br> <a href="xdelta3-api-guide.html">api guide</a><br> <br><a href="http://xdelta.org">xdelta.org</a></h2> </div> </td> <td valign=top width=500> | ||
12 | |||
13 | <!-- Copyright (C) 2003 and onward. Joshua P. MacDonald --!> | ||
14 | |||
15 | <h1>version three?</h1> | ||
16 | |||
17 | Xdelta3 is the third and latest release of Xdelta, which is a set of tools and | ||
18 | APIs for reading and writing compressed <em>deltas</em>. Deltas encode the | ||
19 | differences between two versions of a document. This release features a | ||
20 | completely new compression engine, several algorithmic improvements, a fully | ||
21 | programmable interface modelled after zlib, in addition to a command-line | ||
22 | utility, use of the RFC3284 (VCDIFF) encoding, a python extension, and now | ||
23 | 64-bit support.<p> | ||
24 | |||
25 | Xdelta3 is <em>tiny</em>. A minimal, fully functional VCDIFF decoder library | ||
26 | pipes in at 16KB. The command-line utility complete with encoder/decoder | ||
27 | tools, external compression support, and the <code>djw</code> secondary | ||
28 | compression routines, is just under 60KB, slightly larger than a | ||
29 | <code>gzip</code> executable.<p> | ||
30 | |||
31 | Xdelta3 has few dependencies because it's capable of stand-alone file | ||
32 | compression (i.e., what zlib and gzip do). The stand-alone compression of | ||
33 | Xdelta3/VCDIFF is 10-20% worse than <code>gzip</code>, you may view this as | ||
34 | paying for the convenience-cost of having a single encoding, tool, and api | ||
35 | designed to do both <em>data-compression</em> and <em>differencing</em> at | ||
36 | once.<p> | ||
37 | |||
38 | The Xdelta3 command-line tool, <code>xdelta3</code>, supports several | ||
39 | convenience routines. Delta compression works when the two inputs are | ||
40 | similar, but often we would like to compute the difference between two | ||
41 | compressed documents. <code>xdelta3</code> has (optional) support to | ||
42 | recognize externally compressed inputs and process them correctly. This | ||
43 | support is facilitated, in part, using the VCDIFF <em>application header</em> | ||
44 | field to store <code>xdelta3</code> meta-data, which includes the original | ||
45 | file names (if any) and codes to incidate whether the inputs were externally | ||
46 | compressed. Applications may provide their own application header.<p> | ||
47 | |||
48 | <h1>what are version one and version two?</h1> | ||
49 | |||
50 | Many shortcomings in the Xdelta1.x release are fixed in its replacement, | ||
51 | Xdelta3. Xdelta1 used both a simplistic compression algorithm and a | ||
52 | simplistic encoding. For example, Xdelta1 compresses the entire document at | ||
53 | once and thus uses memory proportional to the input size.<p> | ||
54 | |||
55 | The Xdelta1 compression engine made no attempt to find matching strings | ||
56 | smaller than say 16 or 32 bytes, and the encoding does not attempt to | ||
57 | efficiently encode the <code>COPY</code> and <code>ADD</code> instructions | ||
58 | which constitute a delta. For documents with highly similar data, however, | ||
59 | these techniques degrade performance by a relatively insignificant amount. | ||
60 | (Xdelta1.x compresses the delta with Zlib to improve matters, but this | ||
61 | dependency stinks.)<p> | ||
62 | |||
63 | Despite leaving much to be desired, Xdelta1 showed that you can do well | ||
64 | without great complexity; as it turns out, the particulars of the compression | ||
65 | aengine are a relatively insignificant compared to the difficulty of | ||
66 | programming an application that uses delta-compression. Better solve that | ||
67 | first.<p> | ||
68 | |||
69 | What we want are <em>systems</em> that manage compressed storage and network | ||
70 | communication. The second major release, Xdelta2, addresses these issues. | ||
71 | Xdelta2 features a storage interface -- part database and part file system -- | ||
72 | which allows indexing and labeling compressed documents. The feature set is | ||
73 | similar to RCS. The Xdelta2 interface supports efficient algorithms for | ||
74 | <em>extracting</em> deltas between any pair of versions in storage. The | ||
75 | extraction technique also does not rely on hierarchy or centralizing the | ||
76 | namespace, making the techniques ideal for peer-to-peer communication and | ||
77 | proxy architectures. I am grateful to Mihut Ionescu for implementing the | ||
78 | Xproxy HTTP delta-compressing proxy system based on this interface and | ||
79 | studying the benefits of delta-compression in that context. Xdelta2 stressed | ||
80 | the Xdelta1 compression engine beyond its limits; so Xdelta3 is designed as | ||
81 | the ideal replacement. The Xdelta2 techniques are yet to be ported to the new | ||
82 | implementation.<p> | ||
83 | |||
84 | </td> | ||
85 | </tr> | ||
86 | </table> | ||
87 | |||
88 | </body> | ||
89 | </html> | ||