VCDIFF is a format and an
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
for
delta encoding
Delta encoding is a way of storing or transmitting data in the form of '' differences'' (deltas) between sequential data rather than complete files; more generally this is known as data differencing. Delta encoding is sometimes called delta compr ...
, described in
IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and ...
'
RFC 3284 The algorithm is based on
Jon Bentley and
Douglas McIlroy
Malcolm Douglas McIlroy (born 1932) is a mathematician, engineer, and programmer. As of 2019 he is an Adjunct Professor of Computer Science at Dartmouth College.
McIlroy is best known for having originally proposed Unix pipelines and developed se ...
's paper "Data Compression Using Long Common Strings" written in 1999. VCDIFF is used as one of the delta encoding algorithms in "Delta encoding in HTTP"
RFC 3229 and was employed in
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
's
Shared Dictionary Compression Over HTTP
SDCH (Shared Dictionary Compression for HTTP) is a data compression algorithm created by Google, based on VCDIFF (RFC 3284).
SDCH achieves its effectiveness by using pre-negotiated dictionaries to "warm up" its internal state prior to encoding or ...
technology, formerly used in their
Chrome browser
Google Chrome is a cross-platform web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS, ...
.
Delta instructions
VCDIFF has 3 delta instructions. ADD, COPY, and RUN. ADD adds a new sequence, COPY copies from an old sequence, and RUN adds repeated data.
Implementations
Free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
implementations include
xdelta
xdelta is a command line program for delta encoding, which generates the difference between two files. This is similar to diff and patch, but it is targeted for binary files and does not generate human readable output.
It was first released in 19 ...
(version 3) and
open-vcdiff.
*
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
's
Shared Dictionary Compression Over HTTP
SDCH (Shared Dictionary Compression for HTTP) is a data compression algorithm created by Google, based on VCDIFF (RFC 3284).
SDCH achieves its effectiveness by using pre-negotiated dictionaries to "warm up" its internal state prior to encoding or ...
proposal uses this algorithm, and was included in the
Google Chrome
Google Chrome is a cross-platform web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macO ...
browser, up to version 58.
*
xdelta
xdelta is a command line program for delta encoding, which generates the difference between two files. This is similar to diff and patch, but it is targeted for binary files and does not generate human readable output.
It was first released in 19 ...
- A tool, which is an Open Source VCDIFF delta compression implementation
google/open-vcdiff- Another Open Source VCDIFF delta compression implementation
as part o
vcodex and ast-openpackages (also part of
UWIN)
diffable- Java implementation, but some kind of original modification of VCDIFF
jvcdiff- Full decoder/encoder Java implementation of VCDIFF
vcdiff-java- another Java implementation of VCDIFF
Miscellaneous Utility Library- C# implementation, decoding only
- Updates
CyanogenMod
CyanogenMod ( ; CM) is a discontinued open-source operating system for mobile devices, based on the Android mobile platform. It was developed as free and open-source software based on the official releases of Android by Google, with added origin ...
ROMs using Xdelta3 patches.
See also
*
Delta encoding
Delta encoding is a way of storing or transmitting data in the form of '' differences'' (deltas) between sequential data rather than complete files; more generally this is known as data differencing. Delta encoding is sometimes called delta compr ...
*
Data differencing
In computer science and information theory, data differencing or differential compression is producing a technical description of the difference between two sets of data – a source and a target. Formally, a data differencing algorithm takes as in ...
References
External links
RFC 3284- The VCDIFF Generic Differencing and Compression Data Format
Data differencing
{{Computing-stub