Roundhouse

User guide · Roundhouse — user guide

Roundhouse reads a Rails application — unmodified source, no annotations, no bundle install, no boot, no database — and does one of three things with what it learns. Pick the door you came for.

Analyze

Whole-program type and effect inference over your app, surfaced as an editor server, an agent tool, and a command-line checker. What's the type here? Can it be nil? Which filters run before this action, and which query will be N+1?

Transpile

The same analysis, fed to one of a dozen emitters: a standalone project in Rust, Go, TypeScript, Crystal, Elixir, Kotlin, Swift, Python, C#, or Ruby, with its own tests and no Rails at runtime.

Compile

The Ruby-shape emit compiled ahead of time to a native binary by Spinel. One executable, no interpreter, a SQLite file beside it by default.

Before any of them

Elsewhere

This guide is for using roundhouse. The architecture — how the pipeline is built, what each pass does, why the runtime is split the way it is — lives one directory up in docs/, and contributor setup in DEVELOPMENT.md. Status claims in this guide describe the snapshot they ship with; where the guide and CI disagree, CI wins.

This page is docs/guide/README.md in the repository; edits are welcome there.