A Rust static analysis engine that builds compact program graphs from source code and generates 19 UML and compiler-IR diagrams from them.
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
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
Check that the binary runs
roundhouse --version - 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
An experimental Rust port of the TypeScript 7 compiler (tsc), with the same CLI, language server and API, plus built-in Effect diagnostics.
Self-hosted web group chat with rooms, direct messages, search, file attachments and bot API, deployable as a single Docker image.
A cross-platform, GPU-accelerated OpenGL terminal emulator that relies on other tools like tmux for tabs and splits.
A smarter cd command that learns your most-used directories and lets you jump to them with a few keystrokes, across all major shells.
Rust library, CLI and HTTP backend that checks whether an email address exists without sending any email.