Repolode
rubys

rubys/roundhouse

Компилятор анализирует Rails-приложения на Ruby и создаёт автономные проекты на Rust, Go, TypeScript, Elixir и других языках либо нативный бинарный файл Spinel.

Звёзды
488
Форки
43
Открытые issues
163
Последний коммит
2 часа назад

Что это?

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-агента.

Темы

Частые вопросы

Что такое roundhouse?
Компилятор анализирует Rails-приложения на Ruby и создаёт автономные проекты на Rust, Go, TypeScript, Elixir и других языках либо нативный бинарный файл Spinel. Roundhouse анализирует исходный код Rails без изменений и выполняет межпроцедурный вывод типов — без аннотаций типов, запуска приложения или обращения к базе данных. Анализ определяет типы возвращаемых значений ассоциаций, столбцов моделей и возможные результаты `nil`. На его основе работают команда `check` для терминала и CI, LSP-сервер для редакторов и MCP-сервер для AI-агентов.
roundhouse можно использовать бесплатно? Какая у него лицензия?
roundhouse распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
roundhouse всё ещё поддерживается?
Активно поддерживается. Последний коммит в roundhouse — 19 окт. 2026 г..
Для чего можно использовать roundhouse?
Запуск Rails-приложения в виде скомпилированного бинарного файла без интерпретатора Ruby. Проверка кодовой базы Rails на проблемы с типами и N+1-запросы в CI. Перенос логики Rails-приложения в сервисы на Go, Rust или TypeScript. Изучение потока обработки запросов Rails-приложения в редакторе или с помощью AI-агента.
Где скачать roundhouse?
Исходный код и инструкции по установке — на GitHub: https://github.com/rubys/roundhouse

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты