Xdelta

xdelta は、2つのファイルの差分を生成するコマンド行プログラム。diff と patch に似ているが、バイナリファイルを対象とするものであって、人間が読めるような出力は生成しない。

1997年に最初にリリースされた。開発者は Joshua MacDonald で、保守も当人が行っている。

xdelta1 は、Andrew Trigell が開発した rsync のアルゴリズムに基づいていて、rsync よりも小さなブロックサイズ（16, 32バイトなど）を利用し圧縮していた。xdelta1ではブロックサイズ分はマッチする必要があったが、xdelta3 は VCDIFF に基づいており、4バイト以上マッチするところを見つけ出して、圧縮している。xdelta1 と xdelta3 は全く互換性がなく、API も1から書き換えられていて、Linux のディストリビューションでも別々に登録されている。

最新版の xdelta3 にはいくつかユニークな機能がある。標準のVCDIFF形式 (RFC 3284) の出力を生成でき、VCDIFF形式をサポートする他の差分符号化ソフトウェアと互換性を実現した。UNIX、Linux、BSD、Microsoft Windows、macOS で動作する。xdelta はどのプラットフォーム上でも最大 264 バイトまでのファイルを問題なく扱え、大規模バックアップファイルに適している。

xdelta の出力するパッチファイルは ZIP などで2次圧縮すると圧縮率が向上する。VCDIFF の仕様でもそのような使われ方を想定した物となっている。

xdelta3 の出力するパッチファイルの一般的な拡張子は .xd3。

xdelta3のGUI版としてはDeltaPatcherがある。

関連項目 
差分符号化

脚注

外部リンク 
 
 Andrew Tridgell's PHD on rsync, with a section on xdelta (xdelta1 のアルゴリズム)
 RFC 3284, VCDIFF標準差分符号化フォーマットの仕様 (xdelta3)

アプリケーションソフト (製品)
オープンソースソフトウェア
データ差分