Repolode
AhmadHassan-BTed

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

    Compilar el motor

    cargo build --release
  2. 2

    Analizar una base de código

    target/release/openheart analyze ./my_project ./output_dir
  3. 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