Aller au contenu
CDGet
  • Accueil
  • Projets
  1. Accueil
  2. Tous les projets
  3. Diffine

Diffine

Bibliothèque

Un moteur de comparaison et une vue côte à côte réunis dans un seul paquet React. Il apparie deux versions ligne à ligne, puis mot à mot à l’intérieur des lignes modifiées, et dessine le résultat en tenant les deux côtés à la même hauteur : l’application n’a ni la comparaison ni l’alignement à écrire.

Site web (s’ouvre dans un nouvel onglet)Documentation (s’ouvre dans un nouvel onglet)Code source (s’ouvre dans un nouvel onglet)

À propos de ce projet

Diffine cherche ce qui a changé entre deux versions et le met à l’écran. La comparaison et la vue forment un seul paquet, et non une bibliothèque de différences surmontée d’un afficheur : les deux moitiés se rejoignent sur une valeur. diffText apparie les deux côtés et renvoie des lignes, des blocs et des décomptes dans un objet ordinaire, sans React et sans DOM dedans. La vue est l’un des usages de cette valeur et non le seul chemin qui y mène, si bien que la même comparaison peut être imprimée dans un terminal ou confiée à tout autre chose.

L’appariement se fait à deux niveaux en une seule passe. Les lignes sont d’abord mises par paires, puis, dans une paire modifiée plutôt que remplacée, ce sont les mots ou les caractères qui ont vraiment bougé : la différence entre savoir qu’une ligne a changé et voir quel mot l’a changée. La vue dessine cela sur deux panneaux tenus à la même hauteur, avec des traits qui franchissent l’écart, et chaque élément de la vue est une propriété munie d’une valeur par défaut : les numéros de ligne, le retour à la ligne, l’alignement, les traits, l’affichage unifié. La lecture sans souris fonctionne : chaque panneau est une région qui prend le focus, les boutons qui passent d’une modification à la suivante portent un intitulé, et ce qui a changé est annoncé dès que cela bouge.

L’installation, c’est le paquet et une ligne de CSS. Il n’y a en dessous ni bibliothèque de différences, ni composant d’édition, ni framework CSS : la liste des dépendances d’exécution est vide, et react et react-dom sont des dépendances de pair, donc ce sont les copies déjà présentes dans l’application qui servent. La feuille de style ne déclare rien en dehors de l’élément qu’elle dessine, sa place dans l’ordre des imports est donc sans importance, et le thème sombre suit le réglage du système, ou un attribut quand l’application préfère trancher elle-même. Le paquet est en ESM avec les déclarations TypeScript, et le moteur a son propre point d’entrée : une application qui ne veut que la comparaison n’emporte pas la vue avec elle.

Fonctionnalités

  • Site de documentation

  • Types TypeScript

  • Plusieurs langues

  • Vérifié par des tests

  • Accessible par construction

  • Mode sombre

  • Compatible tree shaking

  • Sans dépendances

Informations sur le projet

Début
2026
Licence
MIT (s’ouvre dans un nouvel onglet)
Langages de programmation
JavaScript
Mots-clés
diffdiff-viewerdiff-tooltext-diffreact
Paquets
diffine-react (s’ouvre dans un nouvel onglet)npm
ContactFaire un don
Les projets présentés ici sont open source sous licence MIT.© 2026 CDGet. Tous droits réservés.