Analisador estático para Ruby que infere tipos sem anotações e busca reportar apenas bugs conclusivos, como métodos indefinidos e receptores nil.
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
Instale o binário pré-compilado com o script de instalação
Instale seguindo as instruções oficiais do README - 2
Verifique se o binário é executado
roundhouse --version - 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
Biblioteca de análise estática para Python que oferece autocompletar, ir para definição, refatoração e busca de código, usada principalmente por plugins de editores.
Um compilador e parser de TypeScript/JavaScript super-rápido, escrito em Rust e utilizável tanto em Rust quanto em JavaScript.
Conjunto de ferramentas de alto desempenho para JavaScript e TypeScript, escritas em Rust, incluindo parser, linter, formatter, transformer, minifier e resolver.
Um compilador de JavaScript que transforma a sintaxe das próximas versões da linguagem em código compatível com os ambientes de destino.
Zen C é uma linguagem de sistemas com ergonomia de alto nível, que compila para GNU C11 legível e oferece desempenho no nível de C.