Motor de análisis estático en Rust que crea grafos compactos de programas a partir del código fuente y genera 19 diagramas UML y de IR de compilador.
rubys/roundhouse
Un compilador que lee aplicaciones Rails en Ruby y genera proyectos independientes en otros lenguajes, como Rust, Go, TypeScript y Elixir, o un binario nativo de Spinel.
- Estrellas
- 488
- Forks
- 43
- Issues abiertos
- 163
- Último commit
- hace 9 horas
¿Qué es?
Roundhouse analiza código fuente de Rails sin modificar mediante inferencia de tipos de todo el programa, sin anotaciones de tipos, sin iniciar la aplicación ni acceder a una base de datos. La información inferida abarca los tipos de retorno de las asociaciones, las columnas de los modelos y los posibles resultados nil. Este mismo análisis sirve para un comando `check` que se usa en terminales y CI, un servidor LSP para editores y un servidor MCP para agentes de IA.
A partir de ese análisis, el transpilador genera un proyecto independiente en uno de varios lenguajes de destino, como Rust, Go, TypeScript, Crystal, Elixir, Kotlin, Swift, Python, C# y Ruby. El código generado tiene sus propias pruebas y no necesita Rails en tiempo de ejecución. El proyecto valida el resultado comparando las respuestas de Rails y de cada destino para la misma URL. Por otra parte, compila el código Ruby anticipadamente en un único binario nativo mediante Spinel, con SQLite como base de datos predeterminada.
La documentación del proyecto incluye resultados de benchmarks que comparan el rendimiento de Rails y el código generado con una aplicación de blog de ejemplo.
Funciones clave
- 01Infiere tipos y seguridad frente a valores nil en código Rails sin anotaciones.
- 02Incluye un comando `check` para terminales y pipelines de CI.
- 03Ofrece un servidor LSP y un servidor MCP para editores y agentes de IA.
- 04Transpila aplicaciones Rails a una docena de lenguajes de destino como proyectos independientes.
- 05Compila código Ruby con estructura de Rails en un binario nativo mediante Spinel.
Casos de uso
- Ejecutar una aplicación Rails como binario compilado, sin intérprete de Ruby.
- Detectar problemas de tipos o consultas N+1 en una base de código Rails durante CI.
- Trasladar la lógica de una aplicación Rails a servicios en Go, Rust o TypeScript.
- Explorar el flujo de solicitudes de una aplicación Rails desde un editor o con un agente de IA.
Inicio rápido
- 1
Instala el binario precompilado con el script de instalación
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rubys/roundhouse/releases/latest/download/roundhouse-installer.sh | sh - 2
Comprueba que el binario se ejecuta
roundhouse --version - 3
Analiza tu aplicación Rails
roundhouse check --continue /path/to/your/rails/app
Antes de usarlo
- Los binarios precompilados solo se han probado en macOS con Apple silicon y Linux x86-64; las versiones para Mac con Intel y Windows no se han probado.
- Su entrada principal son las aplicaciones Rails, por lo que no es una herramienta genérica para convertir Ruby a cualquier cosa.
Temas
Preguntas frecuentes
- ¿Qué es roundhouse?
- Un compilador que lee aplicaciones Rails en Ruby y genera proyectos independientes en otros lenguajes, como Rust, Go, TypeScript y Elixir, o un binario nativo de Spinel. Roundhouse analiza código fuente de Rails sin modificar mediante inferencia de tipos de todo el programa, sin anotaciones de tipos, sin iniciar la aplicación ni acceder a una base de datos. La información inferida abarca los tipos de retorno de las asociaciones, las columnas de los modelos y los posibles resultados nil. Este mismo análisis sirve para un comando `check` que se usa en terminales y CI, un servidor LSP para editores y un servidor MCP para agentes de IA.
- ¿roundhouse es gratuito? ¿Qué licencia tiene?
- roundhouse es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿roundhouse sigue mantenido?
- Mantenimiento activo. El último commit de roundhouse fue el 19 oct 2026.
- ¿Para qué puedo usar roundhouse?
- Ejecutar una aplicación Rails como binario compilado, sin intérprete de Ruby. Detectar problemas de tipos o consultas N+1 en una base de código Rails durante CI. Trasladar la lógica de una aplicación Rails a servicios en Go, Rust o TypeScript. Explorar el flujo de solicitudes de una aplicación Rails desde un editor o con un agente de IA.
- ¿Cómo se instala roundhouse?
- Instala el binario precompilado con el script de instalación: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rubys/roundhouse/releases/latest/download/roundhouse-installer.sh | sh Comprueba que el binario se ejecuta: roundhouse --version Analiza tu aplicación Rails: roundhouse check --continue /path/to/your/rails/app
- ¿Dónde consigo roundhouse?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/rubys/roundhouse
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un port experimental en Rust del compilador TypeScript 7 (tsc), con la misma CLI, el mismo servidor de lenguaje y la misma API, además de diagnósticos de Effect integrados.
Chat grupal web autohospedado con salas, mensajes directos, búsqueda, archivos adjuntos y API para bots, desplegable como una sola imagen de Docker.
Un emulador de terminal multiplataforma con aceleración por GPU y OpenGL que se apoya en herramientas como tmux para las pestañas y los paneles.
Un comando cd más inteligente que aprende cuáles son tus directorios más usados y te permite acceder a ellos con unas pocas teclas, en los principales shells.
Biblioteca de Rust, CLI y backend HTTP que comprueba si una dirección de correo existe sin enviar mensajes.