Repolode
ChunelFeng

ChunelFeng/CGraph

依存ライブラリ不要のC++11向けDAGフレームワーク。並列タスクグラフの構築・実行に対応し、Pythonバインディング(pycgraph)も提供します。

スター
2,316
フォーク
392
未解決の Issue
13
最終コミット
4 日前

これは何?

CGraphは、タスクの有向非巡回グラフを記述・実行するクロスプラットフォームのC++フレームワークです。ノードクラスを継承してrun()メソッドを実装し、ノード間の依存関係を宣言すると、スケジューラが依存ノードを順番に、独立したノードを並列に実行します。pause、resume、タイムアウトにも対応しています。

通常の依存関係に加えて、条件分岐、ループ、並列実行のためのグループを備えています。また、パラメータの受け渡し、イベント、メッセージ、横断的な処理を実現するアスペクトにも対応しています。C++11標準ライブラリを使用しており、macOS、Linux、Windows、Androidでビルドできます。Pythonパッケージpycgraphとしても利用できます。

外部依存を追加せずに、アルゴリズムのワークフローや推論の前処理・後処理など、ネイティブコードで複数ステップの処理パイプラインを組み立てたい開発者向けのプロジェクトです。

主な機能

  • 01依存ノードを順番に、独立したノードを並列に実行
  • 02条件分岐、ループ、グループ単位の実行に対応
  • 03一時停止・再開とノードごとのタイムアウト制御に対応
  • 04ノード間でパラメータ、メッセージ、イベントを受け渡し
  • 05サードパーティ製依存ライブラリが不要で、C++11に対応し、Pythonバインディングも提供

ユースケース

  • C++アプリケーションで複数段階のアルゴリズムやデータ処理パイプラインを制御
  • AI推論の前処理・後処理を依存関係グラフとして構成
  • 外部ライブラリを追加せずに、組み込みまたはAndroidプロジェクトへタスクグラフスケジューラを組み込む

クイックスタート

  1. 1

    PyPIからPythonバインディングをインストールする

    pip install pycgraph
  2. 2

    READMEにあるPythonのデモをスクリプトとして保存し、Pythonで実行する

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

  • READMEにはC++版をパッケージマネージャーでインストールする方法が記載されていません。別途用意されたCOMPILE.mdのガイドに従って、ソースからビルドする必要があります。
  • メインのREADMEは中国語で書かれており、そこからリンクされた英語版のREADMEが別途あります。

収録されている特集

トピック

よくある質問

CGraph とは?
依存ライブラリ不要のC++11向けDAGフレームワーク。並列タスクグラフの構築・実行に対応し、Pythonバインディング(pycgraph)も提供します。 CGraphは、タスクの有向非巡回グラフを記述・実行するクロスプラットフォームのC++フレームワークです。ノードクラスを継承してrun()メソッドを実装し、ノード間の依存関係を宣言すると、スケジューラが依存ノードを順番に、独立したノードを並列に実行します。pause、resume、タイムアウトにも対応しています。
CGraph は無料で使えますか?ライセンスは?
CGraph は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
CGraph は今もメンテナンスされていますか?
活発にメンテナンス中。CGraph の最終コミットは 2026年11月3日 です。
CGraph は何に使えますか?
C++アプリケーションで複数段階のアルゴリズムやデータ処理パイプラインを制御 AI推論の前処理・後処理を依存関係グラフとして構成 外部ライブラリを追加せずに、組み込みまたはAndroidプロジェクトへタスクグラフスケジューラを組み込む
CGraph のインストール方法は?
PyPIからPythonバインディングをインストールする: pip install pycgraph READMEにあるPythonのデモをスクリプトとして保存し、Pythonで実行する
CGraph はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/ChunelFeng/CGraph

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

関連プロジェクト