Compare dois textos ou trechos de código com destaque por linha e por palavra. Lado a lado ou unificado, ignorando espaços ou maiúsculas — totalmente no seu navegador.
Não. Toda a ferramenta é JavaScript executado dentro desta página. O algoritmo de diff (longest-common-subsequence) roda na sua CPU e o resultado é renderizado diretamente no DOM. Abra DevTools → Network e observe — nenhuma requisição é feita durante o diff. Seguro para colar código interno, dados de clientes, rascunhos de contratos ou qualquer coisa que você não queira que uma ferramenta no servidor registre.
Primeiro dividimos as duas entradas em linhas e executamos um algoritmo LCS (longest common subsequence). Linhas que coincidem em ambos os lados são marcadas como iguais. Linhas que não coincidem são pareadas em linhas de 'alteração' quando uma adição aparece ao lado de uma remoção. Para cada par alterado, executamos um segundo LCS sobre as palavras da linha (separadas por espaço), de modo que apenas as palavras realmente editadas fiquem destacadas em vermelho/verde — não a linha inteira.
Por que o iKit Diff Checker
Um ambiente de diff de texto limpo e rápido, sem anúncios, pop-ups ou rastreadores de terceiros — feito para desenvolvedores, escritores e qualquer pessoa que precise identificar o que mudou.
Visualizações lado a lado e unificada
Alterne entre o modo dividido (duas colunas, com a sensação clássica de IDE) e o unificado (coluna única com marcadores +/−) com um clique. Ambas as visualizações exibem números de linha e destacam cada alteração inline.
Destaque por palavra
Quando duas linhas mudam, executamos um segundo diff por palavra para que apenas as diferenças reais fiquem em destaque — não a linha inteira. Mais fácil identificar um único erro de digitação em uma linha de 200 caracteres.
Ignorar espaços e maiúsculas
Alterne a sensibilidade a espaços e a maiúsculas para filtrar mudanças cosméticas (reformatação de indentação, ajustes de capitalização) e focar nas edições reais.
Privacidade por design
Os dois textos permanecem na aba do seu navegador. O algoritmo de diff é executado localmente em JavaScript. Verificável em DevTools → Network: zero requisições enquanto você digita.
Estatísticas e cópia
Veja de relance quantas linhas foram adicionadas, removidas e modificadas. Um clique copia o diff para a área de transferência, pronto para colar em um code review ou mensagem de commit.
Funciona offline
Depois que a página carrega, cada byte é processado localmente. Funciona em um avião, atrás de um firewall corporativo ou totalmente sem rede — útil para revisões de código confidenciais.
Como um diff checker realmente funciona
A matemática por trás é mais antiga que a web — um algoritmo de 1965 chamado LCS, mais um refinamento de 1986 por Eugene Myers.
1
Dividir em linhas
Ambas as entradas são quebradas em \n (ou \r\n). Cada linha vira um token. Comparamos tokens — não caracteres — porque a maioria das edições em código ou documentos do mundo real adiciona, remove ou modifica linhas inteiras.
2
Calcular o LCS
A Longest Common Subsequence é o maior conjunto de linhas que aparecem na mesma ordem em ambas as entradas. Preenchemos uma tabela de programação dinâmica caminhando do canto inferior direito; cada célula guarda o comprimento do LCS daquela posição até o fim. Isso leva tempo e memória O(m × n).
3
Voltar para derivar as operações
Começando pelo canto superior esquerdo da tabela, caminhamos para a frente: se as duas linhas atuais coincidem, emitimos um equal; caso contrário, escolhemos a direção (direita ou para baixo) que preserva o comprimento do LCS, emitindo um delete ou insert. O resultado é uma sequência de operações que transforma o Original em Modificado.
4
Diff por palavra dentro dos pares alterados
Quando uma remoção é seguida por uma inserção, nós as pareamos como uma linha de alteração. Para destacar só as partes que diferem dentro da linha, executamos o mesmo algoritmo LCS uma segunda vez sobre as palavras de cada lado, dividindo nas fronteiras de espaço.
Tarefas comuns de diff
Situações reais em que você vai recorrer a um diff checker.
Revisar um PR antes de comentar
A visualização de diff do GitHub é ótima, mas às vezes você quer ver apenas as mudanças substantivas, sem o ruído do formatador. Cole as duas versões, ative Ignorar espaços e as reformatações cosméticas desaparecem — restando só as alterações de lógica.
Comparar dois rascunhos de contrato
Advogados e equipes de operações muitas vezes precisam saber o que mudou entre a v1 e a v2 de um contrato. Cole os dois e obtenha um diff colorido com destaque por palavra — sem Word, sem Controlar Alterações, sem upload de termos confidenciais a um servidor de terceiros.
Verificar o que uma edição de script realmente fez
Rodou um sed/awk/regex em Python sobre um arquivo de configuração? Cole o original e o resultado aqui para confirmar que o script editou apenas o que você esperava. O destaque por caractere captura edições perdidas que uma rápida inspeção visual não percebe.
Identificar um erro de digitação em texto traduzido
Par de tradução (origem vs tradução, ou duas traduções da mesma origem) — o diff por palavra torna trivial encontrar uma palavra ausente, uma frase duplicada ou uma pontuação trocada que o revisor deixou passar.
Por que o diff local importa
Os textos que você compara geralmente são privados: código de repositórios internos, rascunhos de contratos, exportações de dados de clientes ou textos de produto ainda não lançados. Colá-los no servidor de um estranho cria um rastro que você não controla. O diff checker do iKit é JavaScript já carregado na aba do seu navegador — a comparação roda na sua CPU e nunca toca em um socket de rede.
Zero requisições de rede durante o diff — verificável em DevTools → Network.
As entradas permanecem na memória do navegador; são apagadas ao clicar em Limpar ou recarregar a página.
Seguro para código interno, documentos protegidos por NDA, transcrições de suporte ao cliente e qualquer coisa coberta por políticas de residência de dados.
Related guides
Deep-dive tutorials and tool comparisons from the iKit blog.
Isto é seguro? Meus textos são enviados para algum servidor?
Não. Toda a ferramenta é JavaScript executado dentro desta página. O algoritmo de diff (longest-common-subsequence) roda na sua CPU e o resultado é renderizado diretamente no DOM. Abra DevTools → Network e observe — nenhuma requisição é feita durante o diff. Seguro para colar código interno, dados de clientes, rascunhos de contratos ou qualquer coisa que você não queira que uma ferramenta no servidor registre.
Como funciona o destaque por linha e por palavra?
Primeiro dividimos as duas entradas em linhas e executamos um algoritmo LCS (longest common subsequence). Linhas que coincidem em ambos os lados são marcadas como iguais. Linhas que não coincidem são pareadas em linhas de 'alteração' quando uma adição aparece ao lado de uma remoção. Para cada par alterado, executamos um segundo LCS sobre as palavras da linha (separadas por espaço), de modo que apenas as palavras realmente editadas fiquem destacadas em vermelho/verde — não a linha inteira.
Qual a diferença entre as visualizações Dividida e Unificada?
A visualização Dividida mostra os dois textos lado a lado com números de linha pareados — mais próxima de como o diff aparece em IDEs (VS Code, JetBrains). A Unificada mostra uma única coluna com linhas prefixadas por +/− — mais próxima do que o `git diff` imprime. Escolha a que combina com o seu fluxo de trabalho; ambas renderizam os mesmos dados.
Por que 'ignorar espaços' ajuda?
Reformatar código (rodar Prettier, alternar tab/espaço, normalizar finais de linha) adiciona ruído visual que esconde as alterações reais. Ativar 'Ignorar espaços' colapsa sequências de espaços/tabs em um único espaço e apara as bordas das linhas antes do diff — assim você só vê as edições significativas, não as cosméticas.
Qual é a maior entrada que posso comparar no navegador?
O algoritmo LCS usa memória O(m × n), onde m e n são as contagens de linhas em cada lado. O iKit limita a comparação a cerca de 4 milhões de células (≈16 MB), o que lida confortavelmente com alguns milhares de linhas contra alguns milhares de linhas. Para diffs maiores (dumps inteiros de banco de dados, logs completos), use uma ferramenta de linha de comando como `diff` ou `git diff --no-index` — elas usam um algoritmo mais inteligente (Myers diff) que escala para milhões de linhas.