OmniDiff is a Rust-based Git diff tool designed to show meaningful changes across both source code and non-text files. For code, it uses syntax-aware comparisons to highlight changed expressions and identify moved code instead of marking entire lines as deleted and reinserted. It also applies format-specific methods to content such as pictures, fonts, archives, PDFs, translation catalogs, and cursors; for example, it can identify changed PDF pages or individual font glyphs. The project reports that it handles 99.95% of code changes and uses content-specific algorithms for 98.8% of changes, with typical comparisons taking under 100 milliseconds on a stated Intel i7-1370P system. Its accuracy figures vary by format, and the PDF results are based on fewer than ten judged cases.
The tool offers an interactive terminal viewer, plain-text output for scripts and CI, and JSON output. It integrates with Git as a difftool and can also serve as an external diff driver; `git difftool` opens the interactive interface, while `git diff` and `git log -p` use text output because their pager cannot host the full-screen viewer. Installation options include source builds, release binaries, Homebrew, Debian/Ubuntu packages, and Nix. Neovim and VS Code extensions are available, though VS Code cannot yet replace its built-in diff view through the extension. The repository identifies the project as AGPL v3 licensed and also includes a commercial license.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.