Ce qui se passe
Marko Ivankovic publie OmniDiff, outil de comparaison écrit en Rust et présenté sur Hacker News le 1er novembre. Il part d'un
constat : git diff ne dit rien d'un PDF ou d'une police, et marque des lignes entières lors d'un simple remaniement. Pour
concevoir l'outil, l'auteur dit avoir étudié les dépôts listés par Gentoo et résolu à la main un échantillon de 2 000 diffs.
Ce qu'il compare
- Code : 25 langages analysés avec tree-sitter, dont PHP, TypeScript, TSX, Python, Go, Rust, CSS et HTML. Markdown et SQL sont reconnus, mais comparés en texte.
- Images : PNG, JPEG, GIF, WebP, BMP, ICO et TIFF, pixel par pixel, image par image pour les animations.
- Archives : zip, tar, gzip, xz et bzip2, membre par membre, archives imbriquées comprises.
- Polices : TrueType, OpenType, WOFF, WOFF2 et EOT, glyphe par glyphe.
- PDF : page par page, chaque page étant dessinée.
Comment s'y prendre
brew install ivankovic/omnidiff/omnidiff
# ou, avec Rust 1.92 et un compilateur C :
cargo install --locked omnidiff
omnidiff git configure
git difftool --tool=omnidiffgit diff et git log -p ne lancent jamais l'interface plein écran : ils passent par un pager. Pour y obtenir le rendu en texte :
GIT_EXTERNAL_DIFF=omnidiff git diffJujutsu a son propre assistant, omnidiff jj configure, et exige le mode file-by-file en configuration manuelle. Pour les
scripts et la CI, on dispose de --headless, de --mode json et de --exit-code, qui renvoie 1 quand les fichiers diffèrent.
Les chiffres, et leurs limites
Toutes ces mesures viennent de l'auteur, sur un Intel Core i7-1370P avec 32 Go de RAM.
- Vitesse : sur 2 302 cas, médiane de 4,2 ms, p99 de 177 ms, maximum de 482 ms. Les PDF sont plus lents : seuls 57 % passent sous 100 ms. Les archives manquent l'objectif du p99 (1 938 ms).
- Robustesse : 442 322 paires de fichiers sur 442 530 traitées, soit 99,95 %.
- Précision : l'objectif de 90 % de cas sans aucun octet mal surligné n'est pas atteint. Sur 1 419 cas annotés à la main,
on obtient 60,0 % avec
--fullet 69,6 % avec--minimal.
Avant de l'adopter
- La licence est l'AGPLv3. Une licence commerciale existe, par abonnement, pour un usage interne en entreprise.
- VS Code ne laisse pas encore une extension remplacer sa vue de diff native, même si une extension existe.
- Le projet s'appuie largement sur Claude Code, et le déclare. Il n'accepte aucune contribution pour l'instant.
À retenir
Pour une revue de code, le gain se vérifie en quelques minutes sur votre dernier gros remaniement. Pour les dépôts qui versionnent des binaires, comme des polices ou des PDF, c'est là que le manque était le plus net.
Source : ivankovic/omnidiff sur GitHub, présenté sur Hacker News le 1er novembre 2026. Source en anglais.