CLI-инструмент для поиска, линтинга и переписывания кода по шаблонам AST, а не по обычному тексту.
openrewrite/rewrite
OpenRewrite — движок автоматического рефакторинга с открытым исходным кодом: он применяет рецепты к коду во множестве репозиториев, помогая мигрировать на новые версии фреймворков и устранять уязвимости.
- Звёзды
- 3,955
- Форки
- 601
- Открытые issues
- 307
- Последний коммит
- 15 часов назад
Что это?
OpenRewrite — экосистема автоматического рефакторинга, которая запускает готовые рецепты для исходного кода, чтобы выполнять миграции на новые версии фреймворков, устранять уязвимости и приводить код к единому стилю. Она работает с типизированной моделью кода под названием Lossless Semantic Tree (LST): та сохраняет форматирование и позволяет рецептам вносить точечные изменения.
Парсеры и базовые рецепты доступны для Java, Kotlin, Groovy, JavaScript/TypeScript, Python и C#. Для Java-проектов предусмотрены плагины Gradle и Maven, позволяющие запускать один рецепт в отдельном репозитории. Рецепты можно настраивать или создавать с нуля.
Проект поддерживает Moderne. Компания предлагает коммерческую платформу для одновременного запуска тех же рецептов в нескольких репозиториях, а также CLI для работы с несколькими репозиториями и инструменты для coding agents.
Ключевые возможности
- 01Запускает готовые рецепты рефакторинга для миграции на новые версии фреймворков и устранения уязвимостей.
- 02Преобразует код в типизированное дерево Lossless Semantic Tree, сохраняющее форматирование.
- 03Поддерживает Java, Kotlin, Groovy, JavaScript/TypeScript, Python и C#.
- 04Предоставляет плагины Gradle и Maven для запуска рецептов в Java-проектах.
- 05Позволяет настраивать существующие рецепты или создавать собственные.
Сценарии использования
- Автоматическое обновление Java-кода для перехода на новую версию фреймворка.
- Применение одного и того же исправления уязвимости или изменения стиля во всём репозитории.
- Массовое устранение технического долга без ручной правки файлов по одному.
Быстрый старт
- 1
Прочитайте официальное руководство по быстрому старту
- 2
Добавьте плагин OpenRewrite для Gradle или Maven в проект Java и запустите рецепт
Что важно знать
- Для некоторых рецептов и дополнительных языковых парсеров требуется коммерческая лицензия Moderne либо на них распространяется Moderne Source Available License.
- Плагины Gradle и Maven запускают по одному рецепту за раз для одного репозитория.
Темы
Частые вопросы
- Что такое rewrite?
- OpenRewrite — движок автоматического рефакторинга с открытым исходным кодом: он применяет рецепты к коду во множестве репозиториев, помогая мигрировать на новые версии фреймворков и устранять уязвимости. OpenRewrite — экосистема автоматического рефакторинга, которая запускает готовые рецепты для исходного кода, чтобы выполнять миграции на новые версии фреймворков, устранять уязвимости и приводить код к единому стилю. Она работает с типизированной моделью кода под названием Lossless Semantic Tree (LST): та сохраняет форматирование и позволяет рецептам вносить точечные изменения.
- rewrite можно использовать бесплатно? Какая у него лицензия?
- rewrite распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- rewrite всё ещё поддерживается?
- Активно поддерживается. Последний коммит в rewrite — 6 нояб. 2026 г..
- Для чего можно использовать rewrite?
- Автоматическое обновление Java-кода для перехода на новую версию фреймворка. Применение одного и того же исправления уязвимости или изменения стиля во всём репозитории. Массовое устранение технического долга без ручной правки файлов по одному.
- Как установить rewrite?
- Прочитайте официальное руководство по быстрому старту Добавьте плагин OpenRewrite для Gradle или Maven в проект Java и запустите рецепт
- Где скачать rewrite?
- Исходный код и инструкции по установке — на GitHub: https://github.com/openrewrite/rewrite
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека рефакторинга Python-кода, которая безопасно переименовывает, перемещает и извлекает код в рамках проекта.
Парсер Java от версии 1 до Java 25, который строит абстрактное синтаксическое дерево, и модуль для разрешения ссылок на объявления и типы.
Парсер PHP, написанный на PHP: преобразует исходный код в абстрактное синтаксическое дерево для статического анализа и обработки кода.
Библиотека статического анализа Python для автодополнения, перехода к определению, рефакторинга и поиска по коду; используется преимущественно в плагинах для редакторов.
Преобразует кодовую базу, документацию, схемы и PDF в граф знаний для AI-ассистентов разработки, который можно запрашивать; строит его локально с помощью разбора AST через tree-sitter.