{"data":{"slug":"chunelfeng-cgraph","name":"CGraph","tagline":"【A common used C++ & Python DAG framework】 一个通用的、无三方依赖的、跨平台的、收录于awesome-cpp的、基于流图的并行计算框架。欢迎star & fork & 交流","github_url":"https://github.com/ChunelFeng/CGraph","owner":"ChunelFeng","repo":"CGraph","owner_avatar_url":"https://avatars.githubusercontent.com/u/37905059?v=4","primary_language":"C++","stars":2286,"forks":387,"topics":["ai","ai-agents","dag","graph","pipeline","taskflow","workflow"],"archived":false,"github_pushed_at":"2026-07-05T05:17:35+00:00","maintenance_label":"Active","url":"https://www.graphcanon.com/tools/chunelfeng-cgraph","markdown_url":"https://www.graphcanon.com/tools/chunelfeng-cgraph.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/chunelfeng-cgraph","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=chunelfeng-cgraph","description":"【A common used C++ & Python DAG framework】 一个通用的、无三方依赖的、跨平台的、收录于awesome-cpp的、基于流图的并行计算框架。欢迎star & fork & 交流","homepage_url":"http://www.chunel.cn","license":"MIT","open_issues":14,"watchers":32,"ai_summary":null,"readme_excerpt":"<p align=\"left\">\n  <a href=\"https://github.com/ChunelFeng/CGraph\"><img src=\"https://badgen.net/badge/langs/C++,Python/cyan?list=1\" alt=\"languages\"></a>\n  <a href=\"https://github.com/ChunelFeng/CGraph\"><img src=\"https://badgen.net/badge/os/MacOS,Linux,Windows/cyan?list=1\" alt=\"os\"></a>\n  <a href=\"https://github.com/ChunelFeng/CGraph/stargazers\"><img src=\"https://badgen.net/github/stars/ChunelFeng/CGraph?color=cyan\" alt=\"stars\"></a>\n  <a href=\"https://github.com/ChunelFeng/CGraph/network/members\"><img src=\"https://badgen.net/github/forks/ChunelFeng/CGraph?color=cyan\" alt=\"forks\"></a>\n  <a href=\"https://badge.fury.io/py/pycgraph\"><img src=\"https://badge.fury.io/py/pycgraph.svg\" alt=\"pypi\"></a>\n  <a href=\"https://pepy.tech/projects/pycgraph\"><img src=\"https://static.pepy.tech/personalized-badge/pycgraph?period=total&units=INTERNATIONAL_SYSTEM&left_color=GRAY&right_color=GREEN&left_text=pypi+downloads\" alt=\"PyPI Downloads\"></a>\n  <a href=\"https://www.codefactor.io/repository/github/chunelfeng/cgraph/overview/main\"><img src=\"https://www.codefactor.io/repository/github/chunelfeng/cgraph/badge/main\" alt=\"CodeFactor\" /></a>\n</p>\n\n\n\n\n中文 | [English Readme](README_en.md) | [deepwiki](https://deepwiki.com/ChunelFeng/CGraph)\n\n<h1 align=\"center\"> CGraph 说明文档 </h1>\n\n<img align=\"right\" src=\"https://github.com/ChunelFeng/CGraph/blob/main/doc/image/CGraph%20Author.jpg\" width=\"256px\">\n\n><b>CGraph</b> is a cross-platform <b>D</b>irected <b>A</b>cyclic <b>G</b>raph framework based on pure C++ without any 3rd-party dependencies.</br></br>\n>You, with it, can <b>build your own operators simply, and describe any running schedules</b> as you need, such as dependence, parallelling, aggregation, conditional and so on. <b>Python APIs</b> are also supported to build your pipeline.</br></br>\n>Tutorials and contact information are shown as follows. Please <b>get in touch with us for free</b> if you need more about this repository.\n\n## 一. 简介\n\n`CGraph`中文名为【色丶图】，是一套无任何第三方依赖的跨平台图流程执行框架。通过`GPipeline`(流水线)底层调度，提供了包含依赖元素依次执行、非依赖元素并发执行，支持暂停、恢复、超时设定的 `eDAG` 调度功能。\n\n使用者只需继承`GNode`(节点)类，实现子类的`run()`方法，并根据需要设定依赖关系，即可实现任务的图化执行或流水线执行。还可以通过设定各种包含多节点信息的`GGroup`(组)，自行控制图的条件判断、循环和并发执行逻辑。\n\n\n<br>\n\n本工程使用纯C++11标准库编写，无任何第三方依赖，兼容`MacOS`、`Linux`、`Windows`和`Android`系统。支持本地编译和二次开发，并且提供`Python`版本：`pycgraph`。编译和安装方法，请参考 [CGraph 编译说明](https://github.com/ChunelFeng/CGraph/blob/main/COMPILE.md ) <br>\n\n详细功能介绍和用法，请参考 [一面之猿网](http://www.chunel.cn/) 中的文章内容。相关视频在B站持续更新中，欢迎观看和交流：<br>\n* [【B站视频】CGraph 入门篇](https://www.bilibili.com/video/BV1mk4y1v7XJ) <br>\n* [【B站视频】CGraph 功能篇](https://www.bilibili.com/cheese/play/ss22264) <br>\n  * 全面介绍CGraph项目中，所有的名词术语和功能模块\n  * 结合实际coding过程，详细介绍了每个功能的具体的使用场景、用法、以及解决的问题\n  * 适合想要全面了解功能和快速上手使用CGraph的童鞋\n  * 适合对多线程编程感兴趣的童鞋\n* [【B站视频】CGraph 应用篇](https://www.bilibili.com/video/BV1B84y1D7Hs) <br>\n* [【B站视频】CGraph 分享篇](https://www.bilibili.com/video/BV1ofLdz5EzX) <br>\n\n----\n\n## 二. 入门Demo\n> <b>C++ 版本</b>\n```cpp\n#include \"CGraph.h\"\n\nusing namespace CGraph;\n\nclass MyNode1 : public GNode {\npublic:\n    CStatus run() override {\n        printf(\"[%s], sleep for 1 second ...\\n\", this->getName().c_str());\n        CGRAPH_SLEEP_SECOND(1)\n        return CStatus();\n    }\n};\n\nclass MyNode2 : public GNode {\npublic:\n    CStatus run() override {\n        printf(\"[%s], sleep for 2 second ...\\n\", this->getName().c_str());\n        CGRAPH_SLEEP_SECOND(2)\n        return CStatus();\n    }\n};\n\n\nint main() {\n    /* 创建一个流水线，用于设定和执行流图信息 */\n    GPipelinePtr pipeline = GPipelineFactory::create();\n    GElementPtr a, b, c, d = nullptr;\n\n    /* 注册节点之间的依赖关系 */\n    pipeline->registerGElement<MyNode1>(&a, {}, \"nodeA\");\n    pipeline->registerGElement<MyNode2>(&b, {a}, \"nodeB\");\n    pipeline->registerGElement<MyNode1>(&c, {a}, \"nodeC\");\n    pipeline->registerGElement<MyNode2>(&d, {b, c}, \"nodeD\");\n\n    /* 执行流图框架 */\n    pipeline->process();\n\n    /* 清空流水线中所有的资源 */\n    GPipelineFactory::remove(pipeline);\n\n    return 0;\n}\n```\n\n\n<br>\n如上图所示，图结构执行的时候，首先执行`a`节点。`a`节点执行完毕后，并行执行`b`和`c`节点。`b`和`c`节点全部执行完毕后，再执行`d`节点。\n\n> <b>Python","github_created_at":"2021-04-26T12:06:33+00:00","created_at":"2026-07-15T10:48:53.558388+00:00","updated_at":"2026-07-15T10:48:56.490953+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"},{"slug":"computer-vision","name":"Computer Vision","url":"https://www.graphcanon.com/categories/computer-vision","markdown_url":"https://www.graphcanon.com/categories/computer-vision.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/computer-vision"},{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"}],"tags":[{"slug":"ai","name":"ai"},{"slug":"ai-agents","name":"ai-agents"},{"slug":"c","name":"c#"},{"slug":"dag","name":"dag"},{"slug":"graph","name":"graph"},{"slug":"pipeline","name":"pipeline"},{"slug":"taskflow","name":"taskflow"},{"slug":"workflow","name":"workflow"}],"trust":{"provenance":{"is_fork":false,"github_id":361735570,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-15T10:48:54.723Z","maintenance":{"label":"Active","score":82,"methodology":"github_public_v1","releases_90d":1,"days_since_push":10,"last_release_at":"2026-05-10T06:15:20Z"},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-15T10:48:55.177Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-15T10:48:54.459Z"},"languages":{"value":["c++"],"source":"github.language","observed_at":"2026-07-15T10:48:54.459Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-07-15T10:48:54.459Z"}}}}