Repolode
roundhouse-rb

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. 1

    Установите предварительно собранный бинарный файл с помощью скрипта установки

    Установите по официальной инструкции из README
  2. 2

    Убедитесь, что бинарный файл запускается

    roundhouse --version
  3. 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 обновляется ежедневно.

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

Статический анализатор Ruby, который выводит типы из кода без аннотаций и стремится сообщать только о достоверно выявленных ошибках, например неопределённых методах и вызовах на nil.

1072RubyMPL-2.0Обновлён 11 часов назад

Библиотека статического анализа Python для автодополнения, перехода к определению, рефакторинга и поиска по коду; используется преимущественно в плагинах для редакторов.

6,2 тыс.+3 за неделю549PythonOtherАктивно поддерживаетсяОбновлён 5 дней назад