OmniDiff, a Rust Diff Tool, Reports 60 Percent Exact Matches Against a 90 Percent Goal
Software / news
OmniDiff, a Rust Diff Tool, Reports 60 Percent Exact Matches Against a 90 Percent Goal
The README publishes its own scorecard on 1,419 hand-labelled fixtures. It also says VS Code cannot yet use it as the built-in diff view.
OmniDiff, a Rust diff tool whose README names Marko Ivankovic as copyright holder, reports exact output on 60.0 percent of 1,419 hand-labelled test fixtures in its full preset. The README's own goals are 90 percent and 99 percent, and it says they are not yet met.
The repository showed 86 stars, 2 forks, 4 open issues and 4 open pull requests when The Terminal read it on Nov. 1. Contributions are not being accepted.
What OmniDiff compares
It parses 25 languages with tree-sitter grammars and diffs them structurally. The list runs from C and C# to Go, Kotlin, Rust, Swift and TSX. Markdown, SQL, Protocol Buffers, Dart, Bazel and Emacs Lisp get plain-text diffs only.
It also diffs non-text files: pictures, archives, fonts, cursors, message catalogs and PDFs. There is an interactive terminal viewer, a headless mode, JSON output, and integration with git through git difftool and GIT_EXTERNAL_DIFF. For Jujutsu there is no interactive per-file viewer.
Install paths are cargo install --locked omnidiff, which needs rustc 1.92 or later and a C compiler, prebuilt binaries for Linux, macOS and Windows, Homebrew, a signed apt repository and Nix.
The scorecard is the author's own
Every figure below comes from the README and none was independently verified. The author measured speed on a laptop with an Intel Core i7-1370P and 32 GB of RAM across 2,302 fixtures: median 4.2 ms, 90th percentile 35.1 ms, 99th percentile 177 ms, slowest 482 ms.
- Pictures96.1 %
- Fonts95 %
- Archives88 %
- PDFs57 %
Source: OmniDiff README, accessed 2026-11-01
On 442,530 code pairs from about 7,500 repositories, 99.95 percent finished inside a 120-second budget and a 6 GB memory cap. The author reports 98.8 percent of changed files were diffed as text or by content.
Accuracy is the weak column. Zero mismatched bytes came on 60.0 percent of fixtures in the full preset and 69.6 percent in the minimal one. Archives also miss the author's 99th percentile speed goal.
How it sits next to difftastic
Difftastic is the established structural differ, and it also parses with tree-sitter. Its site lists 20 languages and 4 formats, and says it supports more.
| OmniDiff | Difftastic | |
|---|---|---|
| Licence | AGPL v3, paid commercial option | MIT |
| Languages named | 25 | 20, plus more |
| Beyond code | Pictures, archives, fonts, PDFs | HCL, HTML, JSON, YAML |
The licence is the practical split. An organisation using OmniDiff internally and not wanting AGPL terms buys the commercial subscription through GitHub Sponsors.
Other self-reported benchmarks on this beat deserve the same reading as Lightpanda's 1.0 test-suite figure, and Rust tooling such as Firezone's sanstun is shipping on the same cadence of small repositories.
Limits the README lists
VS Code cannot yet replace its built-in diff view with OmniDiff because the API it needs is unreleased upstream. Plain git diff and git log -p never open the interactive viewer; only git difftool does. Some generated or embedded code hits the time and memory limits.
A companion browser-based review tool, codereview, sits at version 0.0.0, and the README says to use it at your own risk. Audio, EOT fonts compressed with MicroType Express and legacy-encoded text are not diffed by content.
The README says most remaining mismatches come from highlighting rules, not the matcher.
Sources
More in Software
- 01Enlightenment 0.28.0 Adds NetworkManager and PipeWire Support 658 Days After 0.27The window manager's first release since January 2025 needs EFL 1.29.0 and adds NetBSD support, a clipboard history and battery charge limits.
- 02Lawson's 12-Framework Test Puts the AI Cost of One Pokémon App Between $2.67 and $4.97Nolan Lawson had Claude Opus 5.5 build the same app in each stack. Angular cost 1.86 times as much as Hono+htmx, and plain Vite beat eight frameworks on price.
- 03Python 3.15 Ships a Built-In sentinel After Five Years of PEP 661The new type replaces the object() idiom with a one-line constructor that survives copying, pickling and type checking, but a Python 3.15 floor is the price of using it.
- 04Lightpanda 1.0 Passes 80% of Chrome's Web Tests, by Its Own CountThe Zig-built headless browser left beta on Oct. 2, and its own benchmarks put it ahead of two Rust rivals on a 940-page crawl, with no hardware listed.