標準的なバージョン管理ツールは通常、行単位で変更を処理します。そのため、100文字ある行のうち1文字だけが変わった場合でも、行全体が置換されたものとしてマークされてしまいます。OmniDiffは「コンテンツ認識型」の差分表示を提供することで、この問題を解決することを目指しています。Rustで開発されたこのツールは、比較対象のファイルの種類に基づいた特殊なアルゴリズムを使用し、何が正確に変化したかを特定します。例えば、ソースコードを比較する際、単純な変数の名前変更と複雑なロジックの変更を区別することができ、テキストのブロック全体を書き直すのではなく、関連する断片のみをハイライトします。

このアニメーションは、OmniDiffがテキストのブロック全体を書き直すのではなく、特定のロジックの変更や移動した変数をどのように特定するかを実演しています。
このツールは、C++、Go、Java、Python、Rustを含む多くのプログラミング言語の構造分析のためにTree-sitter文法と統合することで、その正確性を実現しています。ソースコード以外にも、OmniDiffは内部構造を分析することでバイナリ形式を処理します。画像(PNG、JPEG)についてはピクセル単位の比較、Webフォント(WOFF2、TrueType)についてはグリフ単位の比較、そしてPDFドキュメントについてはページ単位の分析を提供できます。開発者がIntel Core i7プロセッサを搭載したノートPCで実施したベンチマークによると、このツールは高いパフォーマンスを維持しており、2,300以上のテスト用フィクスチャにおいて中央値100ms未満の差分計算時間を達成しています。

この視覚資料は、内部構造を分析することでWOFF2のようなバイナリ形式を処理するツールの能力を例証しています。

これは、単純なバイナリフラグを超えて、PDFドキュメントに対して構造的な分析を提供するツールの能力を示しています。
OmniDiffは、`difftool`のバックエンドおよびフォーマッターとして、GitやJujutsu (jj)といった一般的なバージョン管理ワークフローに直接統合できます。24ビットカラーやKitty、Sixelなどのグラフィックスプロトコルをサポートするターミナルユーザーインターフェース(TUI)を提供すると同時に、CI/CDパイプライン向けのヘッドレスモードや、プログラムでの利用のためのJSON出力も提供しています。ライセンスに関しては、オープンなコラボレーションを促進するためにGNU Affero General Public License (AGPL)の下でリリースされていますが、これはBSDやMITのようなより寛容なライセンスを好む一部の企業ユーザーにとって障壁となる可能性があります。そのため、このプロジェクトでは、AGPLのソース開示要件を避けたい組織向けに商用ライセンスのティアも提供しています。

このスクリーンショットは、24ビットカラーとグラフィックスプロトコルをサポートするターミナルユーザーインターフェースを紹介しています。