Перейти к содержимому
CDGet
  • Главная
  • Проекты
  1. Главная
  2. Все проекты
  3. Diffine

Diffine

Библиотека

Движок сравнения и просмотр в две колонки, собранные в один пакет для React. Он сопоставляет две версии построчно, а внутри изменённых строк — по словам, и рисует результат, удерживая обе стороны на одной высоте, так что приложению не приходится писать ни сравнение, ни выравнивание.

Сайт (откроется в новой вкладке)Документация (откроется в новой вкладке)Исходный код (откроется в новой вкладке)

Об этом проекте

Diffine находит, что изменилось между двумя версиями, и выводит это на экран. Сравнение и отображение — один пакет, а не библиотека различий с приделанным сверху просмотрщиком: обе половины встречаются на значении. diffText сопоставляет стороны и возвращает строки, блоки и счётчики обычным объектом, внутри которого нет ни React, ни DOM. Просмотр — один из потребителей этого значения, а не единственный путь к нему, поэтому то же сравнение можно напечатать в терминале или передать куда-то ещё.

Сопоставление идёт в два уровня за один проход. Сначала строки собираются в пары, а затем внутри пары, которую изменили, а не заменили, отмечаются слова или символы, которые действительно сдвинулись: это разница между «строка другая» и «вот из-за какого слова». Просмотр рисует это на двух панелях, удерживаемых на одной высоте, с перемычками через промежуток, и каждая часть вида — свойство со значением по умолчанию: номера строк, перенос, выравнивание, перемычки, объединённый вид. Читать без мыши получается: каждая панель — область, принимающая фокус, у кнопок перехода к следующему изменению есть подписи, а об изменениях сообщается сразу же.

Установка — это пакет и одна строка CSS. Под ним нет ни библиотеки различий, ни редактора, ни CSS-фреймворка: список зависимостей времени выполнения пуст, а react и react-dom объявлены как peer-зависимости, поэтому используются те копии, которые у приложения уже есть. Таблица стилей не объявляет ничего за пределами своего элемента, так что её место в порядке импортов не имеет значения, а тёмная тема следует системной настройке или атрибуту, если приложение хочет решать само. Пакет собран в ESM с описаниями типов TypeScript, а у движка есть собственная точка входа, так что приложение, которому нужно только сравнение, не тянет за собой просмотр.

Возможности

  • Сайт документации

  • Типы TypeScript

  • Несколько языков

  • Проверено тестами

  • Доступность из коробки

  • Тёмная тема

  • Поддержка tree shaking

  • Без зависимостей

Сведения о проекте

Начало
2026
Лицензия
MIT (откроется в новой вкладке)
Языки программирования
JavaScript
Теги
diffdiff-viewerdiff-tooltext-diffreact
Пакеты
diffine-react (откроется в новой вкладке)npm
КонтактыПоддержать
Перечисленные здесь проекты открыты под лицензией MIT.© 2026 CDGet. Все права защищены.