Uma ferramenta de diff em Rust que compara código estruturalmente com tree-sitter e também analisa imagens, fontes, arquivos compactados e PDFs.
Wilfred/difftastic
Uma ferramenta de diff para linha de comando que compara arquivos pela árvore sintática, não pelas linhas, mostrando com precisão reformatações e trechos de código movidos.
- Estrelas
- 26,158
- Forks
- 534
- Issues abertas
- 282
- Último commit
- há 3 dias
O que é?
Difftastic é uma ferramenta de diff estrutural que compara dois arquivos com base na sintaxe, em vez de linha por linha. Ela analisa os dois arquivos e destaca apenas os elementos sintáticos que realmente mudaram, mesmo quando o código foi reformatado ou dividido em mais linhas.
A ferramenta considera espaços em branco relevantes apenas onde a linguagem os trata assim, reconhecendo, por exemplo, uma alteração apenas na indentação. Para tipos de arquivo não reconhecidos, ela recorre a um diff baseado em linhas, com destaque de palavras. A saída é uma visualização lado a lado, feita para leitura, não para gerar patches.
Difftastic funciona com git e outros sistemas de controle de versão, e consegue resolver marcadores de conflito de merge comparando os dois lados. Também inclui um modo apenas de verificação, que retorna um código de saída conforme a sintaxe mudou ou não.
Recursos principais
- 01Compara código pela árvore sintática, evitando diffs ruidosos quando há apenas uma reformatação.
- 02Oferece suporte a mais de 30 linguagens de programação.
- 03Destaca alterações em espaços em branco apenas quando a sintaxe as considera relevantes.
- 04Funciona com git e outros sistemas de controle de versão.
- 05Compara os dois lados de um conflito para gerar diff dos marcadores de conflito de merge.
- 06Oferece um modo apenas de verificação para detectar alterações sintáticas sem gerar um diff completo.
Casos de uso
- Revisar commits em que o código foi reformatado ou reestruturado.
- Ler diffs de refatorações grandes em linguagens como Rust, JavaScript ou HTML.
- Verificar no CI se duas versões de um arquivo diferem sintaticamente.
- Inspecionar conflitos de merge lado a lado para visualizar com mais clareza as mudanças reais.
Início rápido
- 1
Instale o difftastic seguindo o guia de instalação do manual
- 2
Compare dois arquivos com o difft
difft foo1.c foo2.c
Antes de usar
- O desempenho cai bastante em arquivos com muitas alterações, e o uso de memória pode ser alto.
- A ordem é sempre considerada significativa; por isso, itens reordenados, como elementos de conjuntos ou chaves não ordenadas, são exibidos como alterações.
- Não realiza mesclagens nem gera patches que possam ser aplicados posteriormente.
Em coleções
Tópicos
Perguntas frequentes
- O que é difftastic?
- Uma ferramenta de diff para linha de comando que compara arquivos pela árvore sintática, não pelas linhas, mostrando com precisão reformatações e trechos de código movidos. Difftastic é uma ferramenta de diff estrutural que compara dois arquivos com base na sintaxe, em vez de linha por linha. Ela analisa os dois arquivos e destaca apenas os elementos sintáticos que realmente mudaram, mesmo quando o código foi reformatado ou dividido em mais linhas.
- difftastic é gratuito? Qual é a licença?
- difftastic é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- difftastic ainda é mantido?
- Manutenção ativa. O último commit de difftastic foi em 4 de nov. de 2026.
- Para que posso usar difftastic?
- Revisar commits em que o código foi reformatado ou reestruturado. Ler diffs de refatorações grandes em linguagens como Rust, JavaScript ou HTML. Verificar no CI se duas versões de um arquivo diferem sintaticamente. Inspecionar conflitos de merge lado a lado para visualizar com mais clareza as mudanças reais.
- Como instalar difftastic?
- Instale o difftastic seguindo o guia de instalação do manual Compare dois arquivos com o difft: difft foo1.c foo2.c
- Onde consigo difftastic?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Wilfred/difftastic
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Pager com realce de sintaxe para saídas de git, diff, grep e blame, configurado como substituto direto do pager padrão do git.
Visualizador interativo de diffs no terminal para revisar alterações de código do Git, Jujutsu, Sapling, PRs do GitHub e arquivos avulsos, com anotações inline de agentes.
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.
Um pager do Git que exibe diffs lado a lado no terminal, com realce de sintaxe no estilo do GitHub.
Uma Skill para agentes que transforma mudanças no Git em uma página HTML de revisão, organizada por finalidade de negócio em vez de listar arquivos um por um.