Uma ferramenta de CLI que busca, verifica e reescreve código usando padrões de árvores sintáticas abstratas em vez de texto simples.
openrewrite/rewrite
Mecanismo open source de refatoração automatizada que aplica recipes ao código-fonte em vários repositórios, incluindo migrações de frameworks e correções de segurança.
- Estrelas
- 3,955
- Forks
- 601
- Issues abertas
- 307
- Último commit
- há 3 horas
O que é?
OpenRewrite é um ecossistema de refatoração automatizada que executa recipes prontos no código-fonte para realizar migrações de frameworks, correções de segurança e ajustes de consistência de estilo. Ele trabalha com um modelo do código que considera os tipos, chamado Lossless Semantic Tree (LST), que preserva a formatação e permite que as recipes façam alterações precisas.
Há parsers e recipes base para Java, Kotlin, Groovy, JavaScript/TypeScript, Python e C#. Em projetos Java, plugins para Gradle e Maven permitem executar uma única recipe em um repositório. Você pode personalizar recipes ou escrevê-las do zero.
O projeto é mantido pela Moderne, que oferece uma plataforma comercial para executar as mesmas recipes em vários repositórios de uma só vez, além de uma CLI para múltiplos repositórios e ferramentas para agentes de programação.
Recursos principais
- 01Executa recipes de refatoração prontas para migrações de frameworks e correções de segurança.
- 02Analisa o código e o converte em uma Lossless Semantic Tree que considera os tipos e preserva a formatação.
- 03Oferece suporte a Java, Kotlin, Groovy, JavaScript/TypeScript, Python e C#.
- 04Disponibiliza plugins para Gradle e Maven para executar recipes em projetos Java.
- 05Permite personalizar recipes existentes ou criar as suas próprias.
Casos de uso
- Atualizar uma base de código Java para uma versão mais recente de um framework com alterações automatizadas.
- Aplicar a mesma correção de segurança ou mudança de estilo em um repositório.
- Eliminar dívida técnica em massa, sem editar arquivos manualmente, um por um.
Início rápido
- 1
Leia o guia oficial de início rápido
- 2
Adicione o plugin do OpenRewrite para Gradle ou Maven ao seu projeto Java e execute uma receita
Antes de usar
- Algumas receitas e os analisadores adicionais de linguagens exigem uma licença comercial da Moderne ou estão sujeitos à Moderne Source Available License.
- Os plugins do Gradle e do Maven executam uma receita por vez em um único repositório.
Tópicos
Perguntas frequentes
- O que é rewrite?
- Mecanismo open source de refatoração automatizada que aplica recipes ao código-fonte em vários repositórios, incluindo migrações de frameworks e correções de segurança. OpenRewrite é um ecossistema de refatoração automatizada que executa recipes prontos no código-fonte para realizar migrações de frameworks, correções de segurança e ajustes de consistência de estilo. Ele trabalha com um modelo do código que considera os tipos, chamado Lossless Semantic Tree (LST), que preserva a formatação e permite que as recipes façam alterações precisas.
- rewrite é gratuito? Qual é a licença?
- rewrite é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- rewrite ainda é mantido?
- Manutenção ativa. O último commit de rewrite foi em 6 de nov. de 2026.
- Para que posso usar rewrite?
- Atualizar uma base de código Java para uma versão mais recente de um framework com alterações automatizadas. Aplicar a mesma correção de segurança ou mudança de estilo em um repositório. Eliminar dívida técnica em massa, sem editar arquivos manualmente, um por um.
- Como instalar rewrite?
- Leia o guia oficial de início rápido Adicione o plugin do OpenRewrite para Gradle ou Maven ao seu projeto Java e execute uma receita
- Onde consigo rewrite?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/openrewrite/rewrite
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma biblioteca de refatoração para Python que faz transformações seguras no código, como renomear, mover e extrair trechos em um projeto.
Parser de Java 1 a Java 25 que gera uma árvore sintática abstrata e inclui um resolvedor de símbolos para localizar declarações e tipos.
Um parser de PHP escrito em PHP que transforma código-fonte PHP em uma árvore sintática abstrata para análise estática e manipulação de código.
Biblioteca de análise estática para Python que oferece autocompletar, ir para definição, refatoração e busca de código, usada principalmente por plugins de editores.
Transforma uma base de código, sua documentação, schemas e PDFs em um grafo de conhecimento consultável por assistentes de programação com IA, criado localmente com parsing de AST usando tree-sitter.