Repolode
AhmadHassan-BTed

AhmadHassan-BTed/OpenHeart

Rust製の静的解析エンジン。ソースコードからコンパクトなプログラムグラフを構築し、19種類のUML図とコンパイラIR図を生成します。

スター
1,980
フォーク
0
未解決の Issue
3
最終コミット
3 日前

これは何?

OpenHeartはRustで書かれた静的プログラム解析エンジンです。tree-sitterでソースコードを解析し、10段階のパイプラインで処理した結果を、メモリマップされたバイナリアーティファクトとして保存します。中核となる表現はSuccinct Compositional Program Graphです。ポインタを多用するASTノードの代わりに、平衡括弧ビット列とrank/selectインデックスを使用してメモリ使用量を抑えます。

このグラフから19種類の投影を生成します。内訳は、クラス図、シーケンス図、ステートマシン図、ユースケース図、配置図などのUML 2.5図が14種類、コンパイラIRが5種類です。コンパイラIRには、制御フローグラフ、データフローグラフ、制御依存グラフ、コールグラフ、ROBDDによるパス要約が含まれます。出力形式はJSON、PlantUML、Mermaid、XMIに対応しています。

Web StudioはGitHub Pages上でブラウザから利用でき、バックエンドなしで公開GitHubリポジトリをクローンして解析できます。同じエンジンはCLIまたはローカルHTTPサーバーとしても実行できます。

主な機能

  • 01tree-sitterでソースコードを解析し、コンパクトなsuccinctプログラムグラフを構築します。
  • 02UML 2.5図を14種類、コンパイラIRグラフを5種類生成します。
  • 03図をJSON、PlantUML、Mermaid、XMI形式でエクスポートします。
  • 04バックエンドなしで公開GitHubリポジトリを解析できる、ブラウザベースのStudioを提供します。
  • 05ローカルプロジェクトを解析するCLIコマンドと、ローカルWebサーバーモードを利用できます。

ユースケース

  • 未知のコードベースをUML図にして、その構造をリバースエンジニアリングする。
  • コンパイラや解析の研究で、制御フロー、データフロー、コールグラフを調べる。
  • 既存コードからPlantUMLまたはMermaidの図を生成し、ドキュメントに利用する。

クイックスタート

  1. 1

    エンジンをビルドする

    cargo build --release
  2. 2

    コードベースを解析する

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

    Webサーバーとstudioを起動する

    target/release/openheart server 8080

使う前に知っておきたいこと

  • エンジンをソースからビルドするには、Rustツールチェーン(1.75以降)が必要です。
  • READMEには、独自のベンチマークに関する主張を除き、解析の精度について記載されていません。

トピック

よくある質問

OpenHeart とは?
Rust製の静的解析エンジン。ソースコードからコンパクトなプログラムグラフを構築し、19種類のUML図とコンパイラIR図を生成します。 OpenHeartはRustで書かれた静的プログラム解析エンジンです。tree-sitterでソースコードを解析し、10段階のパイプラインで処理した結果を、メモリマップされたバイナリアーティファクトとして保存します。中核となる表現はSuccinct Compositional Program Graphです。ポインタを多用するASTノードの代わりに、平衡括弧ビット列とrank/selectインデックスを使用してメモリ使用量を抑えます。
OpenHeart は無料で使えますか?ライセンスは?
OpenHeart は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
OpenHeart は今もメンテナンスされていますか?
活発にメンテナンス中。OpenHeart の最終コミットは 2026年10月17日 です。
OpenHeart は何に使えますか?
未知のコードベースをUML図にして、その構造をリバースエンジニアリングする。 コンパイラや解析の研究で、制御フロー、データフロー、コールグラフを調べる。 既存コードからPlantUMLまたはMermaidの図を生成し、ドキュメントに利用する。
OpenHeart のインストール方法は?
エンジンをビルドする: cargo build --release コードベースを解析する: target/release/openheart analyze ./my_project ./output_dir Webサーバーとstudioを起動する: target/release/openheart server 8080
OpenHeart はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/AhmadHassan-BTed/OpenHeart

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト