Um framework de testes para Python que facilita a criação de testes simples e também dá conta de testes funcionais complexos para aplicações e bibliotecas.
dmtrKovalenko/odiff
Ferramenta de linha de comando rápida e otimizada com SIMD, além de biblioteca Node.js, que compara imagens pixel a pixel e gera uma imagem de diferenças.
Alternativa open source a:ImageMagick
- Estrelas
- 3,274
- Forks
- 118
- Issues abertas
- 16
- Último commit
- há 6 dias
O que é?
odiff compara visualmente duas imagens, pixel a pixel, e pode salvar as diferenças destacadas em um arquivo PNG. A ferramenta é voltada a testes de regressão visual, nos quais capturas de tela de uma execução de testes são comparadas com imagens de referência armazenadas, mas também funciona com qualquer par de imagens, como fotos ou resultados gerados por IA.
A ferramenta foi escrita em Zig e usa instruções SIMD (SSE2, AVX2, AVX512 e NEON) para ganhar velocidade. Aceita imagens PNG, JPEG, WebP e TIFF, inclusive comparações entre formatos, e consegue lidar com imagens com layouts diferentes. As opções incluem limites de cor, detecção de anti-aliasing, regiões retangulares ignoradas e relatórios das linhas e colunas com diferenças.
Além do binário independente, odiff oferece uma API Node.js (pacote odiff-bin) com um modo de servidor persistente que evita iniciar um processo a cada comparação. Há integrações com Playwright, Cypress e R, e vários serviços de testes visuais usam a ferramenta como mecanismo de comparação.
Recursos principais
- 01Compara imagens PNG, JPEG, WebP e TIFF, inclusive entre formatos diferentes.
- 02Usa otimizações SIMD para SSE2, AVX2, AVX512 e NEON.
- 03Detecta pixels com anti-aliasing e permite ignorar regiões especificadas.
- 04Aceita imagens com layouts diferentes e informa os índices das linhas e colunas com diferenças.
- 05Oferece uma API Node.js e um modo de servidor persistente.
Casos de uso
- Testes de regressão visual de páginas da web em pipelines de CI.
- Comparação de capturas de tela do Playwright ou Cypress com imagens de referência armazenadas.
- Verificação de alterações em imagens geradas ou renderizações entre builds.
Início rápido
- 1
Instalar a CLI via npm
npm install odiff-bin - 2
Consultar a ajuda da CLI
odiff --help - 3
Comparar duas imagens e gerar uma imagem com as diferenças
odiff <IMG1 path> <IMG2 path> [DIFF output path]
Antes de usar
- O README não dá detalhes sobre a compatibilidade dos binários pré-compilados com Windows ou Linux, além de dizer «a maioria das plataformas».
Tópicos
Perguntas frequentes
- O que é odiff?
- Ferramenta de linha de comando rápida e otimizada com SIMD, além de biblioteca Node.js, que compara imagens pixel a pixel e gera uma imagem de diferenças. odiff compara visualmente duas imagens, pixel a pixel, e pode salvar as diferenças destacadas em um arquivo PNG. A ferramenta é voltada a testes de regressão visual, nos quais capturas de tela de uma execução de testes são comparadas com imagens de referência armazenadas, mas também funciona com qualquer par de imagens, como fotos ou resultados gerados por IA.
- odiff é gratuito? Qual é a licença?
- odiff é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- odiff ainda é mantido?
- Manutenção ativa. O último commit de odiff foi em 13 de out. de 2026.
- Para que posso usar odiff?
- Testes de regressão visual de páginas da web em pipelines de CI. Comparação de capturas de tela do Playwright ou Cypress com imagens de referência armazenadas. Verificação de alterações em imagens geradas ou renderizações entre builds.
- Como instalar odiff?
- Instalar a CLI via npm: npm install odiff-bin Consultar a ajuda da CLI: odiff --help Comparar duas imagens e gerar uma imagem com as diferenças: odiff <IMG1 path> <IMG2 path> [DIFF output path]
- Onde consigo odiff?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/dmtrKovalenko/odiff
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Navegador headless criado do zero em Zig para agentes de IA e automação, com servidores CDP e WebDriver BiDi.
Swagger UI exibe documentação interativa de APIs no navegador a partir de um arquivo de especificação OpenAPI/Swagger.
Framework de testes end-to-end para apps web e mobile que permite descrever objetivos em linguagem natural e controlar o app com um agente.
Gerenciador moderno de pacotes e dependências Python que gerencia venvs, lockfiles e builds com base nos metadados PEP 621 e PEP 517.
Ferramenta CLI que abre um visualizador web local no estilo GitHub para revisar diffs de commits git e copiar comentários como prompts para IA.