Repolode
rubys

rubys/roundhouse

A compiler that reads Rails applications in Ruby and emits standalone projects in other languages such as Rust, Go, TypeScript, Elixir, or a native Spinel binary.

Stars
488
Forks
43
Open issues
163
Last commit
7 hours ago

What is it?

Roundhouse analyzes unmodified Rails source with whole-program type inference, without type annotations, booting the app, or touching a database. The inferred information covers association return types, model columns, and possible nil results. The same analysis powers a `check` command for terminals and CI, an LSP server for editors, and an MCP server for AI agents.

From that analysis, the transpiler emits a standalone project in one of several target languages, including Rust, Go, TypeScript, Crystal, Elixir, Kotlin, Swift, Python, C#, and Ruby. The generated code has its own tests and does not need Rails at runtime. The project validates output by comparing responses from Rails and each target for the same URL. A separate path compiles the Ruby code ahead of time into a single native binary through Spinel, with SQLite as the default database.

The project's documentation includes benchmark results comparing throughput of Rails and emitted code on a sample blog fixture.

Key features

  • 01Infers types and nil-safety from unannotated Rails code.
  • 02Provides a `check` command for terminals and CI pipelines.
  • 03Offers an LSP server and an MCP server for editors and AI agents.
  • 04Transpiles Rails apps to a dozen target languages as standalone projects.
  • 05Compiles Rails-shaped Ruby to a native binary via Spinel.

Use cases

  • Running a Rails application as a compiled binary without a Ruby interpreter.
  • Checking a Rails codebase for type issues or N+1 queries in CI.
  • Porting a Rails app's logic to Go, Rust, or TypeScript services.
  • Exploring a Rails app's request flow in an editor or with an AI agent.

Quick start

  1. 1

    Install the prebuilt binary with the installer script

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

    Check that the binary runs

    roundhouse --version
  3. 3

    Analyze your Rails application

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

Things to know

  • Prebuilt binaries are tested only for macOS on Apple silicon and Linux x86-64; macOS Intel and Windows builds are untested.
  • Its main input is Rails applications, so it is not a general Ruby-to-anything tool.

Topics

FAQ

What is roundhouse?
A compiler that reads Rails applications in Ruby and emits standalone projects in other languages such as Rust, Go, TypeScript, Elixir, or a native Spinel binary. Roundhouse analyzes unmodified Rails source with whole-program type inference, without type annotations, booting the app, or touching a database. The inferred information covers association return types, model columns, and possible nil results. The same analysis powers a `check` command for terminals and CI, an LSP server for editors, and an MCP server for AI agents.
Is roundhouse free to use? What license does it have?
roundhouse is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is roundhouse still maintained?
Actively maintained. The last commit to roundhouse was on Oct 19, 2026.
What can I use roundhouse for?
Running a Rails application as a compiled binary without a Ruby interpreter. Checking a Rails codebase for type issues or N+1 queries in CI. Porting a Rails app's logic to Go, Rust, or TypeScript services. Exploring a Rails app's request flow in an editor or with an AI agent.
How do I install roundhouse?
Install the prebuilt binary with the installer script: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rubys/roundhouse/releases/latest/download/roundhouse-installer.sh | sh Check that the binary runs: roundhouse --version Analyze your Rails application: roundhouse check --continue /path/to/your/rails/app
Where can I get roundhouse?
The source code and installation instructions are on GitHub: https://github.com/rubys/roundhouse

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects