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.
AhmadHassan-BTed/OpenHeart
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.
- Estrellas
- 1,980
- Forks
- 0
- Issues abiertos
- 3
- Último commit
- hace 3 días
¿Qué es?
OpenHeart es un motor de análisis estático de programas escrito en Rust. Analiza el código fuente con tree-sitter, lo procesa mediante un pipeline de 10 fases y almacena los resultados como artefactos binarios con memoria asignada. Su representación principal es un Succinct Compositional Program Graph, que utiliza cadenas de bits de paréntesis balanceados e índices rank/select en lugar de nodos AST con muchos punteros, para reducir el uso de memoria.
A partir de este grafo, el proyecto genera 19 proyecciones: 14 diagramas UML 2.5 (de clases, secuencia, máquina de estados, casos de uso, despliegue, entre otros) y cinco IR de compilador, incluidos el grafo de flujo de control, el grafo de flujo de datos, el grafo de dependencia de control, el grafo de llamadas y un resumen de rutas ROBDD. Los resultados están disponibles en JSON, PlantUML, Mermaid y XMI.
El estudio web se ejecuta en el navegador desde GitHub Pages y puede clonar y analizar repositorios públicos de GitHub sin backend. El mismo motor también se puede ejecutar como CLI o como servidor HTTP local.
Funciones clave
- 01Crea un grafo sucinto y compacto del programa a partir del código fuente, que analiza con tree-sitter.
- 02Genera 14 diagramas UML 2.5 y 5 grafos de IR de compilador.
- 03Exporta diagramas en JSON, PlantUML, Mermaid y XMI.
- 04Incluye un estudio para el navegador que analiza repositorios públicos de GitHub sin backend.
- 05Ofrece un comando CLI para analizar proyectos locales y un modo de servidor web local.
Casos de uso
- Aplicar ingeniería inversa a la estructura de una base de código desconocida y representarla con diagramas UML.
- Examinar grafos de flujo de control, flujo de datos o llamadas durante investigaciones sobre compiladores o análisis.
- Generar diagramas PlantUML o Mermaid a partir de código existente para documentarlo.
Inicio rápido
- 1
Compilar el motor
cargo build --release - 2
Analizar una base de código
target/release/openheart analyze ./my_project ./output_dir - 3
Iniciar el servidor web y studio
target/release/openheart server 8080
Antes de usarlo
- Se necesita una cadena de herramientas de Rust (1.75 o posterior) para compilar el motor desde el código fuente.
- El README no describe la precisión del análisis más allá de sus propias afirmaciones sobre benchmarks.
Temas
Preguntas frecuentes
- ¿Qué es OpenHeart?
- 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. OpenHeart es un motor de análisis estático de programas escrito en Rust. Analiza el código fuente con tree-sitter, lo procesa mediante un pipeline de 10 fases y almacena los resultados como artefactos binarios con memoria asignada. Su representación principal es un Succinct Compositional Program Graph, que utiliza cadenas de bits de paréntesis balanceados e índices rank/select en lugar de nodos AST con muchos punteros, para reducir el uso de memoria.
- ¿OpenHeart es gratuito? ¿Qué licencia tiene?
- OpenHeart es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿OpenHeart sigue mantenido?
- Mantenimiento activo. El último commit de OpenHeart fue el 17 oct 2026.
- ¿Para qué puedo usar OpenHeart?
- Aplicar ingeniería inversa a la estructura de una base de código desconocida y representarla con diagramas UML. Examinar grafos de flujo de control, flujo de datos o llamadas durante investigaciones sobre compiladores o análisis. Generar diagramas PlantUML o Mermaid a partir de código existente para documentarlo.
- ¿Cómo se instala OpenHeart?
- Compilar el motor: cargo build --release Analizar una base de código: target/release/openheart analyze ./my_project ./output_dir Iniciar el servidor web y studio: target/release/openheart server 8080
- ¿Dónde consigo OpenHeart?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/AhmadHassan-BTed/OpenHeart
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un grafo local de conocimiento del código que proporciona a las herramientas de programación con IA contexto preciso para revisiones mediante MCP y una CLI.
Generador incremental de parsers y biblioteca de análisis sintáctico que crea árboles de sintaxis concretos y los actualiza a medida que se editan los archivos fuente.
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.
Un port en Rust del compilador y el servidor de lenguaje de TypeScript 7, como reemplazo directo para la comprobación de tipos y la generación de código.
Un juego de mecanografía para terminal que convierte tu propio código fuente o repositorios públicos de GitHub en desafíos de escritura.