Repolode
rubys

rubys/roundhouse

Um compilador que lê aplicações Rails em Ruby e gera projetos independentes em outras linguagens, como Rust, Go, TypeScript, Elixir ou um binário nativo Spinel.

Estrelas
488
Forks
43
Issues abertas
163
Último commit
há 6 horas

O que é?

O Roundhouse analisa código-fonte Rails sem modificações usando inferência de tipos para todo o programa, sem anotações de tipo, sem inicializar a aplicação e sem acessar um banco de dados. As informações inferidas abrangem os tipos de retorno de associações, as colunas dos modelos e os possíveis resultados nil. Essa mesma análise alimenta um comando `check` para terminais e CI, um servidor LSP para editores e um servidor MCP para agentes de IA.

Com base nessa análise, o transpilador gera um projeto independente em uma das várias linguagens de destino, incluindo Rust, Go, TypeScript, Crystal, Elixir, Kotlin, Swift, Python, C# e Ruby. O código gerado tem seus próprios testes e não precisa do Rails em tempo de execução. O projeto valida a saída comparando as respostas do Rails com as de cada destino para a mesma URL. Há também um caminho separado que compila o código Ruby antecipadamente em um único binário nativo por meio do Spinel, usando SQLite como banco de dados padrão.

A documentação do projeto inclui resultados de benchmarks que comparam a taxa de processamento do Rails com a do código gerado em uma aplicação de blog de exemplo.

Recursos principais

  • 01Infere tipos e segurança contra nil a partir de código Rails sem anotações.
  • 02Disponibiliza um comando `check` para terminais e pipelines de CI.
  • 03Oferece um servidor LSP e um servidor MCP para editores e agentes de IA.
  • 04Transpila aplicações Rails para uma dúzia de linguagens de destino como projetos independentes.
  • 05Compila código Ruby com estrutura Rails em um binário nativo por meio do Spinel.

Casos de uso

  • Executar uma aplicação Rails como binário compilado, sem um interpretador Ruby.
  • Verificar uma base de código Rails em busca de problemas de tipo ou consultas N+1 no CI.
  • Portar a lógica de uma aplicação Rails para serviços em Go, Rust ou TypeScript.
  • Explorar o fluxo de requisições de uma aplicação Rails em um editor ou com um agente de IA.

Início rápido

  1. 1

    Instale o binário pré-compilado com o script de instalação

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

    Verifique se o binário é executado

    roundhouse --version
  3. 3

    Analise sua aplicação Rails

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

Antes de usar

  • Os binários pré-compilados foram testados apenas no macOS com Apple silicon e no Linux x86-64; as versões para Mac com Intel e Windows não foram testadas.
  • Seu principal tipo de entrada são aplicações Rails, portanto não é uma ferramenta genérica para converter Ruby em qualquer coisa.

Tópicos

Perguntas frequentes

O que é roundhouse?
Um compilador que lê aplicações Rails em Ruby e gera projetos independentes em outras linguagens, como Rust, Go, TypeScript, Elixir ou um binário nativo Spinel. O Roundhouse analisa código-fonte Rails sem modificações usando inferência de tipos para todo o programa, sem anotações de tipo, sem inicializar a aplicação e sem acessar um banco de dados. As informações inferidas abrangem os tipos de retorno de associações, as colunas dos modelos e os possíveis resultados nil. Essa mesma análise alimenta um comando `check` para terminais e CI, um servidor LSP para editores e um servidor MCP para agentes de IA.
roundhouse é gratuito? Qual é a licença?
roundhouse é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
roundhouse ainda é mantido?
Manutenção ativa. O último commit de roundhouse foi em 19 de out. de 2026.
Para que posso usar roundhouse?
Executar uma aplicação Rails como binário compilado, sem um interpretador Ruby. Verificar uma base de código Rails em busca de problemas de tipo ou consultas N+1 no CI. Portar a lógica de uma aplicação Rails para serviços em Go, Rust ou TypeScript. Explorar o fluxo de requisições de uma aplicação Rails em um editor ou com um agente de IA.
Como instalar roundhouse?
Instale o binário pré-compilado com o script de instalação: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rubys/roundhouse/releases/latest/download/roundhouse-installer.sh | sh Verifique se o binário é executado: roundhouse --version Analise sua aplicação Rails: roundhouse check --continue /path/to/your/rails/app
Onde consigo roundhouse?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/rubys/roundhouse

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados