Repolode
AhmadHassan-BTed

AhmadHassan-BTed/OpenHeart

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.

Estrelas
1,980
Forks
0
Issues abertas
3
Último commit
há 3 dias

O que é?

OpenHeart é um mecanismo de análise estática de programas escrito em Rust. Ele faz o parsing do código-fonte com tree-sitter, processa o código em um pipeline de 10 fases e armazena os resultados como artefatos binários mapeados em memória. A representação central é um Succinct Compositional Program Graph, que usa bitstrings de parênteses balanceados e índices rank/select em vez de nós de AST com muitos ponteiros, reduzindo o uso de memória.

A partir desse grafo, o projeto deriva 19 projeções: 14 diagramas UML 2.5 (de classes, sequência, máquina de estados, casos de uso, implantação e outros) e cinco IRs de compilador, incluindo grafo de fluxo de controle, grafo de fluxo de dados, grafo de dependência de controle, grafo de chamadas e um resumo de caminhos ROBDD. É possível exportar os resultados como JSON, PlantUML, Mermaid e XMI.

Um estúdio web funciona no navegador pelo GitHub Pages e pode clonar e analisar repositórios públicos do GitHub sem backend. O mesmo mecanismo também pode ser executado como CLI ou servidor HTTP local.

Recursos principais

  • 01Cria um grafo sucinto e compacto de programas a partir do código-fonte, usando o parser tree-sitter.
  • 02Gera 14 diagramas UML 2.5 e cinco grafos de IR de compilador.
  • 03Exporta diagramas como JSON, PlantUML, Mermaid e XMI.
  • 04Executa um estúdio no navegador que analisa repositórios públicos do GitHub sem backend.
  • 05Oferece um comando CLI para analisar um projeto local e um modo de servidor web local.

Casos de uso

  • Fazer engenharia reversa da estrutura de uma base de código desconhecida por meio de diagramas UML.
  • Inspecionar grafos de fluxo de controle, fluxo de dados ou chamadas durante pesquisas sobre compiladores ou análise.
  • Gerar diagramas PlantUML ou Mermaid a partir de código existente para documentação.

Início rápido

  1. 1

    Compilar o mecanismo

    cargo build --release
  2. 2

    Analisar uma base de código

    target/release/openheart analyze ./my_project ./output_dir
  3. 3

    Iniciar o servidor web e o studio

    target/release/openheart server 8080

Antes de usar

  • É necessário ter uma toolchain do Rust (1.75 ou superior) para compilar o mecanismo a partir do código-fonte.
  • O README não descreve a precisão da análise além das alegações sobre seus próprios benchmarks.

Tópicos

Perguntas frequentes

O que é OpenHeart?
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. OpenHeart é um mecanismo de análise estática de programas escrito em Rust. Ele faz o parsing do código-fonte com tree-sitter, processa o código em um pipeline de 10 fases e armazena os resultados como artefatos binários mapeados em memória. A representação central é um Succinct Compositional Program Graph, que usa bitstrings de parênteses balanceados e índices rank/select em vez de nós de AST com muitos ponteiros, reduzindo o uso de memória.
OpenHeart é gratuito? Qual é a licença?
OpenHeart é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
OpenHeart ainda é mantido?
Manutenção ativa. O último commit de OpenHeart foi em 17 de out. de 2026.
Para que posso usar OpenHeart?
Fazer engenharia reversa da estrutura de uma base de código desconhecida por meio de diagramas UML. Inspecionar grafos de fluxo de controle, fluxo de dados ou chamadas durante pesquisas sobre compiladores ou análise. Gerar diagramas PlantUML ou Mermaid a partir de código existente para documentação.
Como instalar OpenHeart?
Compilar o mecanismo: cargo build --release Analisar uma base de código: target/release/openheart analyze ./my_project ./output_dir Iniciar o servidor web e o studio: target/release/openheart server 8080
Onde consigo OpenHeart?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/AhmadHassan-BTed/OpenHeart

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados