Repolode
rubys

rubys/roundhouse

Railsアプリを解析し、Rust、Go、TypeScript、Elixirなどの単体プロジェクトやSpinelネイティブバイナリを生成するコンパイラ。

スター
488
フォーク
43
未解決の Issue
163
最終コミット
10 時間前

これは何?

Roundhouseは、型注釈を追加したり、アプリを起動したり、データベースに接続したりせずに、変更を加えていないRailsのソースコードを全体解析して型を推論します。推論される情報には、関連付けの戻り値の型、モデルのカラム、nilになりうる結果が含まれます。同じ解析機能は、ターミナルやCIで使える`check`コマンド、エディター向けのLSPサーバー、AIエージェント向けのMCPサーバーでも利用されています。

この解析結果をもとに、トランスパイラーはRust、Go、TypeScript、Crystal、Elixir、Kotlin、Swift、Python、C#、Rubyなど、複数のターゲット言語で単体プロジェクトを生成します。生成コードには独自のテストがあり、実行時にRailsを必要としません。同じURLに対するRailsと各ターゲットの応答を比較して、出力を検証します。別の方法として、Spinelを使ってRubyコードを事前コンパイルし、単一のネイティブバイナリにすることもできます。デフォルトのデータベースはSQLiteです。

プロジェクトのドキュメントには、サンプルのブログ用フィクスチャを使って、Railsと生成コードのスループットを比較したベンチマーク結果が掲載されています。

主な機能

  • 01型注釈のないRailsコードから型とnil安全性を推論します。
  • 02ターミナルやCIパイプラインで使える`check`コマンドを提供します。
  • 03エディターやAIエージェント向けに、LSPサーバーとMCPサーバーを提供します。
  • 04Railsアプリを複数のターゲット言語で、単体プロジェクトとしてトランスパイルします。
  • 05Railsに近い構造のRubyコードをSpinel経由でネイティブバイナリにコンパイルします。

ユースケース

  • Rubyインタープリターなしで、Railsアプリケーションをコンパイル済みバイナリとして実行する。
  • CIでRailsコードベースの型の問題やN+1クエリをチェックする。
  • RailsアプリのロジックをGo、Rust、TypeScriptのサービスに移植する。
  • エディターやAIエージェントを使って、Railsアプリのリクエストフローを把握する。

クイックスタート

  1. 1

    インストーラースクリプトでビルド済みバイナリをインストールする

    curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rubys/roundhouse/releases/latest/download/roundhouse-installer.sh | sh
  2. 2

    バイナリが実行できることを確認する

    roundhouse --version
  3. 3

    Railsアプリケーションを解析する

    roundhouse check --continue /path/to/your/rails/app

使う前に知っておきたいこと

  • ビルド済みバイナリのテスト対象はApple silicon搭載MacとLinux x86-64のみです。Intel Mac向けとWindows向けのビルドはテストされていません。
  • 主な入力対象はRailsアプリケーションであり、Rubyを何にでも変換する汎用ツールではありません。

トピック

よくある質問

roundhouse とは?
Railsアプリを解析し、Rust、Go、TypeScript、Elixirなどの単体プロジェクトやSpinelネイティブバイナリを生成するコンパイラ。 Roundhouseは、型注釈を追加したり、アプリを起動したり、データベースに接続したりせずに、変更を加えていないRailsのソースコードを全体解析して型を推論します。推論される情報には、関連付けの戻り値の型、モデルのカラム、nilになりうる結果が含まれます。同じ解析機能は、ターミナルやCIで使える`check`コマンド、エディター向けのLSPサーバー、AIエージェント向けのMCPサーバーでも利用されています。
roundhouse は無料で使えますか?ライセンスは?
roundhouse は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
roundhouse は今もメンテナンスされていますか?
活発にメンテナンス中。roundhouse の最終コミットは 2026年10月19日 です。
roundhouse は何に使えますか?
Rubyインタープリターなしで、Railsアプリケーションをコンパイル済みバイナリとして実行する。 CIでRailsコードベースの型の問題やN+1クエリをチェックする。 RailsアプリのロジックをGo、Rust、TypeScriptのサービスに移植する。 エディターやAIエージェントを使って、Railsアプリのリクエストフローを把握する。
roundhouse のインストール方法は?
インストーラースクリプトでビルド済みバイナリをインストールする: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rubys/roundhouse/releases/latest/download/roundhouse-installer.sh | sh バイナリが実行できることを確認する: roundhouse --version Railsアプリケーションを解析する: roundhouse check --continue /path/to/your/rails/app
roundhouse はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/rubys/roundhouse

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト