Repolode
roundhouse-rb

roundhouse-rb/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
527
Forks
49
Issues abertas
163
Último commit
há 17 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

    Instale seguindo as instruções oficiais do README
  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.

Em coleções

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 5 de nov. 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 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/roundhouse-rb/roundhouse

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

Projetos relacionados