VCDIFF
# VCDIFF

VCDIFF is a format and an algorithm for delta encoding, described in IETF's RFC 3284. The algorithm is based on Jon Bentley and Douglas McIlroy'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's Shared Dictionary Compression Over HTTP technology, formerly used in their Chrome browser.

## 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 implementations include xdelta (version 3) and open-vcdiff.

* Google's Shared Dictionary Compression Over HTTP proposal uses this algorithm, and was included in the Google Chrome browser, up to version 58.
* xdelta - A tool, which is an Open Source VCDIFF delta compression implementation
* google/open-vcdiff - Another Open Source VCDIFF delta compression implementation
* vczip as part of vcodex and ast-open packages (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
* CyanDelta - Updates CyanogenMod ROMs using Xdelta3 patches.
