Um compilador que lê aplicações Rails em Ruby e gera projetos independentes em outras linguagens, como Rust, Go, TypeScript, Elixir ou um binário nativo Spinel.
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
Compilar o mecanismo
cargo build --release - 2
Analisar uma base de código
target/release/openheart analyze ./my_project ./output_dir - 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
Um grafo local de conhecimento do código que fornece às ferramentas de programação com IA contexto preciso para revisões via MCP e CLI.
Um gerador de parsers incremental e uma biblioteca de parsing que cria árvores de sintaxe concreta e as atualiza conforme os arquivos-fonte são editados.
Uma port experimental em Rust do compilador TypeScript 7 (tsc), com a mesma CLI, o mesmo servidor de linguagem e a mesma API, além de diagnósticos integrados do Effect.
Uma implementação em Rust do compilador e do servidor de linguagem do TypeScript 7, que substitui diretamente as ferramentas de verificação de tipos e geração de saída.
Um jogo de digitação no terminal que transforma seu próprio código-fonte ou repositórios públicos do GitHub em desafios de digitação.