Repolode
rubys

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. 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. 2

    Comprueba que el binario se ejecuta

    roundhouse --version
  3. 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