Skip to content

new(jmacd/xdelta): VCDIFF (RFC 3284) delta compression — open-vcdiff alternative#13146

Open
tannevaled wants to merge 1 commit into
pkgxdev:mainfrom
tannevaled:new/xdelta
Open

new(jmacd/xdelta): VCDIFF (RFC 3284) delta compression — open-vcdiff alternative#13146
tannevaled wants to merge 1 commit into
pkgxdev:mainfrom
tannevaled:new/xdelta

Conversation

@tannevaled
Copy link
Copy Markdown
Contributor

Summary

Adds Joshua MacDonald's xdelta3 — the most widely used VCDIFF (RFC 3284) implementation outside Google's now-archived open-vcdiff.

Why now

Google's `open-vcdiff` was archived 2023-08-26 (see #13141 where I attempted to package it and parked due to vendored gflags submodule problems). xdelta is the credible alternative:

  • Used by Chromium auto-update for some delta channels
  • Used by many embedded firmware delta-update pipelines
  • 1284 stars, RFC 3284 conformant
  • Upstream is dormant (last push 2020) but not archived — algorithm and CLI surface are RFC-stable

Build

Standard autotools, GPL-2.0+. Builds from the modern `xdelta3/` subdir; `xdelta1/` (1998 prototype) intentionally skipped.

Test plan

  • CI boundary-check + plan
  • 4 bottle builds
  • Round-trip encode/decode of a small source/target pair, verifying byte-identity after decode — exercises both encoder and decoder

Related

🤖 Generated with Claude Code

Joshua MacDonald's xdelta3 — the most widely used VCDIFF
implementation outside Google's now-archived open-vcdiff. Used by
Chromium auto-update channels and many embedded firmware delta
pipelines. C autotools build, GPL-2.0+.

Upstream is dormant (last push 2020) but unarchived; the algorithm
and CLI surface are RFC-stable.

Builds from the modern xdelta3/ subdir; the older xdelta1/ proto
is left out (1998 historical only).

Test: round-trip encode/decode with a small source/target pair.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant