Railsアプリを解析し、Rust、Go、TypeScript、Elixirなどの単体プロジェクトやSpinelネイティブバイナリを生成するコンパイラ。
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
エンジンをビルドする
cargo build --release - 2
コードベースを解析する
target/release/openheart analyze ./my_project ./output_dir - 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 の数値は毎日更新されます。
関連プロジェクト
MCPとCLIでAIコーディングツールに正確なレビュー情報を提供する、ローカルのコード知識グラフ。
ソースファイルの編集に合わせて構文木を更新する、インクリメンタルパーサージェネレーター兼パーシングライブラリ。
TypeScript 7コンパイラ(tsc)の実験的なRust移植版。CLI、言語サーバー、APIをそのまま提供し、Effectの診断機能も組み込まれています。
TypeScript 7のコンパイラーと言語サーバーをRustに移植した、型チェックとコード出力のドロップイン置き換えです。
自分のソースコードや公開GitHubリポジトリをタイピング課題にできる、ターミナル向けタイピングゲーム。