Фреймворк для тестирования Python: помогает писать небольшие тесты и подходит для сложного функционального тестирования приложений и библиотек.
dmtrKovalenko/odiff
Быстрый SIMD-оптимизированный CLI-инструмент и библиотека для Node.js: сравнивает изображения попиксельно и создаёт diff-файл.
Open source альтернатива:ImageMagick
- Звёзды
- 3,274
- Форки
- 118
- Открытые issues
- 16
- Последний коммит
- 6 дней назад
Что это?
odiff попиксельно сравнивает два изображения и может записать выделенные различия в PNG-файл. Инструмент предназначен для визуального регрессионного тестирования: скриншоты, полученные при запуске тестов, сравнивают с сохранёнными эталонами. Но odiff подойдёт для сравнения любых изображений — например, фотографий или изображений, сгенерированных ИИ.
Инструмент написан на Zig и использует для ускорения SIMD-инструкции (SSE2, AVX2, AVX512 и NEON). Он принимает изображения в форматах PNG, JPEG, WebP и TIFF, в том числе позволяет сравнивать изображения разных форматов, а также обрабатывает изображения с разной раскладкой. Среди доступных настроек — цветовые пороги, обнаружение сглаживания, исключение прямоугольных областей и вывод различающихся строк и столбцов.
Помимо отдельного бинарного файла, odiff включает Node.js API (пакет odiff-bin) с постоянным режимом работы сервера, в котором для каждого сравнения не нужно запускать отдельный процесс. Доступны интеграции с Playwright, Cypress и R, а несколько сервисов визуального тестирования используют odiff как движок сравнения.
Ключевые возможности
- 01Сравнивает изображения в форматах PNG, JPEG, WebP и TIFF, в том числе разных форматов.
- 02Использует SIMD-оптимизации для SSE2, AVX2, AVX512 и NEON.
- 03Обнаруживает пиксели со сглаживанием и позволяет исключать заданные области.
- 04Поддерживает изображения с разной раскладкой и выводит индексы различающихся строк и столбцов.
- 05Предоставляет Node.js API и постоянный режим работы сервера.
Сценарии использования
- Визуальное регрессионное тестирование веб-страниц в CI-пайплайнах.
- Сравнение скриншотов из Playwright или Cypress с сохранёнными эталонами.
- Проверка того, изменились ли сгенерированные изображения или рендеры между сборками.
Быстрый старт
- 1
Установить CLI через npm
npm install odiff-bin - 2
Посмотреть справку CLI
odiff --help - 3
Сравнить два изображения и сохранить изображение с различиями
odiff <IMG1 path> <IMG2 path> [DIFF output path]
Что важно знать
- В README нет подробной информации о поддержке предсобранных бинарных файлов для Windows или Linux — сказано лишь, что они доступны для «большинства платформ».
Темы
Частые вопросы
- Что такое odiff?
- Быстрый SIMD-оптимизированный CLI-инструмент и библиотека для Node.js: сравнивает изображения попиксельно и создаёт diff-файл. odiff попиксельно сравнивает два изображения и может записать выделенные различия в PNG-файл. Инструмент предназначен для визуального регрессионного тестирования: скриншоты, полученные при запуске тестов, сравнивают с сохранёнными эталонами. Но odiff подойдёт для сравнения любых изображений — например, фотографий или изображений, сгенерированных ИИ.
- odiff можно использовать бесплатно? Какая у него лицензия?
- odiff распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- odiff всё ещё поддерживается?
- Активно поддерживается. Последний коммит в odiff — 13 окт. 2026 г..
- Для чего можно использовать odiff?
- Визуальное регрессионное тестирование веб-страниц в CI-пайплайнах. Сравнение скриншотов из Playwright или Cypress с сохранёнными эталонами. Проверка того, изменились ли сгенерированные изображения или рендеры между сборками.
- Как установить odiff?
- Установить CLI через npm: npm install odiff-bin Посмотреть справку CLI: odiff --help Сравнить два изображения и сохранить изображение с различиями: odiff <IMG1 path> <IMG2 path> [DIFF output path]
- Где скачать odiff?
- Исходный код и инструкции по установке — на GitHub: https://github.com/dmtrKovalenko/odiff
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Быстрый универсальный инструментарий для JavaScript и TypeScript: runtime, bundler, тестовый раннер и пакетный менеджер в одном исполняемом файле.
Swagger UI отображает в браузере интерактивную документацию API на основе спецификации OpenAPI/Swagger.
Автоматизация Android на естественном языке для AI-помощников по программированию и тестовых наборов на реальных устройствах и эмуляторах.
Фреймворк для сквозного тестирования веб- и мобильных приложений: описывайте цели тестов обычным языком, а агент будет управлять приложением.
Единый набор инструментов для веб-разработки: Vite, Vitest, Oxlint, Oxfmt, Rolldown и tsdown доступны через CLI `vp`, который также управляет средой выполнения и пакетными менеджерами.