Um mecanismo de análise estática em Rust que cria grafos compactos de programas a partir do código-fonte e gera 19 diagramas UML e de IR de compilador.
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
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
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.
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
Uma port experimental em Rust do compilador TypeScript 7 (tsc), com a mesma CLI, o mesmo servidor de linguagem e a mesma API, além de diagnósticos integrados do Effect.
Chat em grupo web auto-hospedado, com salas, mensagens diretas, busca, anexos de arquivos e API para bots, implantável como uma única imagem Docker.
Emulador de terminal multiplataforma com aceleração por GPU e OpenGL, que usa ferramentas como tmux para oferecer abas e divisões.
Um comando cd mais inteligente, que aprende quais diretórios você mais usa e permite acessá-los com poucas teclas em todos os principais shells.
Biblioteca Rust, CLI e backend HTTP que verifica se um endereço de e-mail existe sem enviar mensagens.