OmniDiff - Content-aware Git difftool на Rust

Show HN: OmniDiff – Opensource, super fast, content aware Git difftool, in Rust

OmniDiff - Content-aware Git difftool на Rust

OmniDiff — это открытый и сверхбыстрый инструмент для сравнения файлов, который понимает содержимое. Вместо того чтобы просто помечать целые строки как изменённые, он анализирует код, изображения, шрифты, PDF и архивы, показывая только реальные различия. Поддерживает 25 языков программирования через tree-sitter, работает как бэкенд для git difftool и jj, имеет интерактивный TUI и режим JSON. Установка через cargo, Homebrew, apt или Nix. Идеально подходит для код-ревью и анализа изменений в бинарных файлах, где обычный diff бессилен.

OmniDiff раскрашивает только те части, которые действительно изменились, а не целые строки — например, sum(numbers) и len(numbers) вместо всего выражения.
  1. bita_nidir

    Ого, я часто мечтал о таком инструменте. Спасибо!

    Поскольку большинство людей в большинстве случаев просто кликают и запускают (согласно многолетним исследованиям, n=1), я просто добавлю ссылку на дополнительные примеры: https://ivankovic.github.io/omnidiff/showcase/content.html

  2. nickjj

    В Delta есть действительно отличный способ показывать диффы в режиме diff-so-fancy — он больше похож на интерфейс GitHub, где не только строка выделяется цветом по-другому, но и используется другой оттенок цвета для подсветки символов.

    Там есть скриншот и видео, которые я написал некоторое время назад: https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-...

    В readme и веб-версии OmniDiff я не увидел способа сделать это.

    В другом комментарии вы упомянули, что OmniDiff намного лучше Delta, и сказали: «Примерно треть диффов значительно лучше». Можете привести примеры таких? Я никогда не видел, чтобы Delta не справлялась с диффом.

    Кроме того, у Delta есть пакет для Arch в официальных репозиториях. Для людей, которым нужен просто опыт «оно работает», это довольно большое преимущество. С Delta один и тот же пакет можно установить одинаковым способом на Debian, Arch и macOS с Brew, используя стандартные менеджеры пакетов. С OmniDiff есть 3 разных способа установки (ручной deb-пакет на Debian, ручная компиляция пакета на Arch и brew install на Mac). Просто пища для размышлений: как человек, у которого есть публичные dotfiles, работающие в этих трёх средах, я бы только из-за этого пропустил OmniDiff.

  3. arkenflame

    Очень хорошо сделано, мне это очень нравится. Он создаёт гораздо более минималистичные диффы, чем другие инструменты, которые я пробовал.

    Одна функция, которой мне не хватает из difftastic, — это показ диффов бок о бок на широких терминалах и объединённо на узких.

Ещё за этот день

2026-11-01