VCDIFF

{{External links|date=December 2021}}

VCDIFF is a format and an algorithm for delta encoding, described in IETF's [https://datatracker.ietf.org/doc/html/rfc3284 RFC 3284]. The algorithm is based on Jon Bentley and Douglas McIlroy's paper "Data Compression Using Long Common Strings"{{cite conference |title=Data compression using long common strings |last1=Bentley |first1=Jon |last2=McIlroy |first2=Douglas |conference=DCC '99: Proceedings of the Conference on Data Compression |year=1999 |publisher=IEEE Computer Society |url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.11.8470 |doi=10.1109/DCC.1999.755678|citeseerx=10.1.1.11.8470 }} written in 1999.{{citation needed|date=February 2020}} VCDIFF is used as one of the delta encoding algorithms in "Delta encoding in HTTP" ([https://datatracker.ietf.org/doc/html/rfc3229 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.{{cite web |url=https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/nQl0ORHy7sw |title=Intent to Unship: SDCH |access-date=2017-08-08}}
  • xdelta - A tool, which is an Open Source VCDIFF delta compression implementation
  • [https://github.com/google/open-vcdiff/ google/open-vcdiff] - Another Open Source VCDIFF delta compression implementation
  • [http://www2.research.att.com/~astopen/man/man1/vczip.html vczip] as part of [http://www2.research.att.com/sw/download/ vcodex and ast-open] packages (also part of UWIN)
  • [https://code.google.com/archive/p/diffable/ diffable] - Java implementation, but some kind of original modification of VCDIFF
  • [https://archive.today/20140507022255/https://github.com/xiaxiaocao/jvcdiff/ jvcdiff] - Full decoder/encoder Java implementation of VCDIFF
  • [https://github.com/ehrmann/vcdiff-java vcdiff-java] - another Java implementation of VCDIFF
  • [http://www.yoda.arachsys.com/csharp/miscutil/ Miscellaneous Utility Library] - C# implementation, decoding only
  • [http://www.cyandelta.com/index.html CyanDelta] - Updates CyanogenMod ROMs using Xdelta3 patches.

See also

References

{{Reflist}}