Статический анализатор Ruby, который выводит типы из кода без аннотаций и стремится сообщать только о достоверно выявленных ошибках, например неопределённых методах и вызовах на nil.
roundhouse-rb/roundhouse
Компилятор анализирует Rails-приложения на Ruby и создаёт автономные проекты на Rust, Go, TypeScript, Elixir и других языках либо нативный бинарный файл Spinel.
- Звёзды
- 528
- Форки
- 51
- Открытые issues
- 163
- Последний коммит
- 3 часа назад
Что это?
Roundhouse анализирует исходный код Rails без изменений и выполняет межпроцедурный вывод типов — без аннотаций типов, запуска приложения или обращения к базе данных. Анализ определяет типы возвращаемых значений ассоциаций, столбцов моделей и возможные результаты `nil`. На его основе работают команда `check` для терминала и CI, LSP-сервер для редакторов и MCP-сервер для AI-агентов.
По результатам анализа транспилятор создаёт автономный проект на одном из целевых языков, включая Rust, Go, TypeScript, Crystal, Elixir, Kotlin, Swift, Python, C# и Ruby. У сгенерированного кода есть собственные тесты, и для работы ему не нужен Rails. Корректность вывода проверяется сравнением ответов Rails и каждой целевой реализации на один и тот же URL. Отдельный режим заранее компилирует код Ruby в единый нативный бинарный файл с помощью Spinel; по умолчанию используется SQLite.
В документации проекта приведены результаты бенчмарков, сравнивающих пропускную способность Rails и сгенерированного кода на примере блога.
Ключевые возможности
- 01Выводит типы и проверяет безопасность работы с `nil` в коде Rails без аннотаций.
- 02Предоставляет команду `check` для терминала и CI-пайплайнов.
- 03Предлагает LSP-сервер для редакторов и MCP-сервер для AI-агентов.
- 04Транспилирует Rails-приложения в автономные проекты на двенадцати целевых языках.
- 05Компилирует Ruby-код в стиле Rails в нативный бинарный файл с помощью Spinel.
Сценарии использования
- Запуск Rails-приложения в виде скомпилированного бинарного файла без интерпретатора Ruby.
- Проверка кодовой базы Rails на проблемы с типами и N+1-запросы в CI.
- Перенос логики Rails-приложения в сервисы на Go, Rust или TypeScript.
- Изучение потока обработки запросов Rails-приложения в редакторе или с помощью AI-агента.
Быстрый старт
- 1
Установите предварительно собранный бинарный файл с помощью скрипта установки
Установите по официальной инструкции из README - 2
Убедитесь, что бинарный файл запускается
roundhouse --version - 3
Проанализируйте приложение Rails
roundhouse check --continue /path/to/your/rails/app
Что важно знать
- Предварительно собранные бинарные файлы тестировались только на macOS с Apple silicon и Linux x86-64; сборки для Mac с Intel и Windows не тестировались.
- Основной тип входных данных — приложения Rails, поэтому это не универсальный инструмент для преобразования Ruby во что угодно.
В подборках
Темы
Частые вопросы
- Что такое roundhouse?
- Компилятор анализирует Rails-приложения на Ruby и создаёт автономные проекты на Rust, Go, TypeScript, Elixir и других языках либо нативный бинарный файл Spinel. Roundhouse анализирует исходный код Rails без изменений и выполняет межпроцедурный вывод типов — без аннотаций типов, запуска приложения или обращения к базе данных. Анализ определяет типы возвращаемых значений ассоциаций, столбцов моделей и возможные результаты `nil`. На его основе работают команда `check` для терминала и CI, LSP-сервер для редакторов и MCP-сервер для AI-агентов.
- roundhouse можно использовать бесплатно? Какая у него лицензия?
- roundhouse распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- roundhouse всё ещё поддерживается?
- Активно поддерживается. Последний коммит в roundhouse — 7 нояб. 2026 г..
- Для чего можно использовать roundhouse?
- Запуск Rails-приложения в виде скомпилированного бинарного файла без интерпретатора Ruby. Проверка кодовой базы Rails на проблемы с типами и N+1-запросы в CI. Перенос логики Rails-приложения в сервисы на Go, Rust или TypeScript. Изучение потока обработки запросов Rails-приложения в редакторе или с помощью AI-агента.
- Как установить roundhouse?
- Установите предварительно собранный бинарный файл с помощью скрипта установки Убедитесь, что бинарный файл запускается: roundhouse --version Проанализируйте приложение Rails: roundhouse check --continue /path/to/your/rails/app
- Где скачать roundhouse?
- Исходный код и инструкции по установке — на GitHub: https://github.com/roundhouse-rb/roundhouse
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека статического анализа Python для автодополнения, перехода к определению, рефакторинга и поиска по коду; используется преимущественно в плагинах для редакторов.
Сверхбыстрый компилятор и парсер TypeScript/JavaScript на Rust, доступный из Rust и JavaScript.
Набор высокопроизводительных инструментов для JavaScript и TypeScript на Rust: парсер, линтер, форматтер, трансформер, минификатор и резолвер.
Компилятор JavaScript, который преобразует синтаксис нового поколения в код, работающий в целевых средах.
Zen C — системный язык с удобным высокоуровневым синтаксисом, который компилируется в читаемый GNU C11 и работает с производительностью C.