conv.

All stories
TechQuiet 10d · day 11

OmniDiff: Open-source Rust diff tool handles code, images, PDFs at 100ms speeds

Developer Ivan Kovic releases a fast, type-aware Git difftool supporting 25 languages and binary formats, built on analysis of real open-source repositories.

What to know

  • OmniDiff is a new open-source Rust-based Git difftool that handles code (25 languages), images, PDFs, archives, and other file types with type-aware content diffing.
  • Performance benchmarks show 100ms diff times for large C++ files; design is based on empirical analysis of 2,000 sampled diffs from real open-source repositories.
  • Available under AGPLv3 with prebuilt binaries for Linux, macOS, and Windows; supports CLI, TUI, JSON output modes and integrates as a Git difftool.

Ivan Kovic OmniDiff creator and developer

OmniDiff: Open-source Rust diff tool handles code, images, PDFs at 100ms speeds
github.com

How it unfolded 1 development · click the chart to see its coverage articlesposts

Peak 4 pieces in 3h at Nov 1, 7 AM; 23 pieces over 11 days (2 articles · 3 posts · 18 comments) Nov 1, 7 AM — 4 pieces · 2 articles · 2 posts — Newswires 2, Hacker News 1, Mastodon 1Nov 1, 10 AM — 3 pieces · 3 comments — Hacker News 3Nov 1, 1 PM — 2 pieces · 2 comments — Hacker News 2Nov 1, 4 PM — 3 pieces · 1 post · 2 comments — Hacker News 2, Mastodon 1Nov 1, 7 PM — 1 piece · 1 comment — Hacker News 1Nov 1, 10 PM — 2 pieces · 2 comments — Hacker News 2Nov 2, 1 AM — 2 pieces · 2 comments — Hacker News 2Nov 2, 4 AM — 3 pieces · 3 comments — Hacker News 3Nov 2, 7 AM — 3 pieces · 3 comments — Hacker News 3Nov 2, 10 AM — quietNov 2, 1 PM — quietNov 2, 4 PM — quietNov 2, 7 PM — quietNov 2, 10 PM — quietNov 3, 1 AM — quietNov 3, 4 AM — quietNov 3, 7 AM — quietNov 3, 10 AM — quietNov 3, 1 PM — quietNov 3, 4 PM — quietNov 3, 7 PM — quietNov 3, 10 PM — quietNov 4, 1 AM — quietNov 4, 4 AM — quietNov 4, 7 AM — quietNov 4, 10 AM — quietNov 4, 1 PM — quietNov 4, 4 PM — quietNov 4, 7 PM — quietNov 4, 10 PM — quietNov 5, 1 AM — quietNov 5, 4 AM — quietNov 5, 7 AM — quietNov 5, 10 AM — quietNov 5, 1 PM — quietNov 5, 4 PM — quietNov 5, 7 PM — quietNov 5, 10 PM — quietNov 6, 1 AM — quietNov 6, 4 AM — quietNov 6, 7 AM — quietNov 6, 10 AM — quietNov 6, 1 PM — quietNov 6, 4 PM — quietNov 6, 7 PM — quietNov 6, 10 PM — quietNov 7, 1 AM — quietNov 7, 4 AM — quietNov 7, 7 AM — quietNov 7, 10 AM — quietNov 7, 1 PM — quietNov 7, 4 PM — quietNov 7, 7 PM — quietNov 7, 10 PM — quietNov 8, 1 AM — quietNov 8, 4 AM — quietNov 8, 7 AM — quietNov 8, 10 AM — quietNov 8, 1 PM — quietNov 8, 4 PM — quietNov 8, 7 PM — quietNov 8, 10 PM — quietNov 9, 1 AM — quietNov 9, 4 AM — quietNov 9, 7 AM — quietNov 9, 10 AM — quietNov 9, 1 PM — quietNov 9, 4 PM — quietNov 9, 7 PM — quietNov 9, 10 PM — quietYesterday, 1 AM — quietYesterday, 4 AM — quietYesterday, 7 AM — quietYesterday, 10 AM — quietYesterday, 1 PM — quietYesterday, 4 PM — quietYesterday, 7 PM — quietYesterday, 10 PM — quietToday, 1 AM — quietToday, 4 AM — quietToday, 7 AM — quietToday, 10 AM — quietToday, 1 PM — quietToday, 4 PM — quietToday, 7 PM — quiet 1
Nov 2Nov 3Nov 4Nov 5Nov 6Nov 7Nov 8Nov 9yesterdaynow · 9:50 PM ET
  1. 1

    OmniDiff released as AGPLv3 open source with multiple installation options

    The tool is available as open source under AGPLv3 license with prebuilt binaries for Linux, macOS (Intel and Apple Silicon), and Windows attached to GitHub releases. Installation options include source builds via Rust, Nix flakes, and packaging recipes for Arch and Gentoo.

    “I have been researching what the ultimate diff tool would look like, based on actual diffs in open source repositories.”
    — Ivan Kovic, OmniDiff developer · source
    • Delta has a really nice way to show diffs with its diff-so-fancy mode, it's more similar to GitHub's UI where not only the line is colored up differently but there's a different shade of color to highlight the characters.There's a screenshot and video of it here that I wrote a while back…

      nickjjHacker News10d agoview on Hacker News ↗
    2 more of the top 3 · 18 posts in this stretch
    • It would be nice if you checked out lazygit and consider adding support to it's recently added OSC1717, adding supporting for staging in the main diff view directly: https://github.com/stefanhaller/diff-line-metadata-specAlso it would be nice to have a more thorough and comprehensive comparison against difftastic, because I don't think there are…

      ToosterHacker News9d agoview on Hacker News ↗
    • Nicely done OP. Does it do 3-way diffs for merges as well? The instructions only mention the two-way `git difftool` configuration so maybe that'll be a future feature?Any interest in getting the setup upstreamed[1] so that users only need to `git config --global diff.tool omnidiff` to enable it by default? Disclosure: I created `git difftool` a…

      davvidHacker News10d agoview on Hacker News ↗
    all of them →
  2. background

    OmniDiff claims 100ms performance on large files with content-aware diffing — The tool offers speed benchmarks showing it can diff C++ files of tens of thousands of lines in under 100ms on a 2023 ThinkPad T14s with Intel Core i7-1370P and 32GB RAM. OmniDiff uses type-aware diffing with context awareness, showing function/class locations for changes deep in large files.

  3. background

    Ivan Kovic releases OmniDiff on Hacker News — A developer announced OmniDiff, a new open-source Git difftool written in Rust, on Hacker News. The tool is designed to handle multiple file types including code (25 languages), config files, images, PDFs, archives, cursors, and fonts. The post describes performance benchmarks and technical implementation details.

Also covered reported alongside — the timeline has no entry for these yet

  1. first by HN Best, 10d ago · also HN Frontpage

What people are saying 14 voices from 1 site · best of 18 · verbatim