C++11-фреймворк для параллельных вычислений и асинхронной работы с сетью, используемый в серверных сервисах Sogou для построения DAG-сценариев задач.
ChunelFeng/CGraph
CGraph — не требующий сторонних зависимостей C++11-фреймворк для построения и выполнения параллельных графов задач с Python-привязкой pycgraph.
- Звёзды
- 2,316
- Форки
- 392
- Открытые issues
- 13
- Последний коммит
- 4 дня назад
Что это?
CGraph — кроссплатформенный фреймворк на C++ для описания и выполнения ориентированных ациклических графов задач. Вы наследуете класс узла, реализуете его метод run() и задаёте зависимости между узлами. Планировщик запускает зависимые узлы по порядку, а независимые — параллельно; также поддерживаются пауза, возобновление и тайм-ауты.
Помимо обычных зависимостей, во фреймворке есть группы для условных ветвлений, циклов и параллельного выполнения, а также передача параметров, события, сообщения и аспекты для сквозной логики. Проект использует стандартную библиотеку C++11, собирается на macOS, Linux, Windows и Android, а также доступен как пакет Python pycgraph.
Проект предназначен для разработчиков, которым нужно оркестрировать многоэтапные конвейеры обработки в нативном коде — например, алгоритмические процессы или предварительную и последующую обработку при инференсе — без добавления внешних зависимостей.
Ключевые возможности
- 01Запускает зависимые узлы по порядку, а независимые — параллельно
- 02Поддерживает условные ветвления, циклы и групповое выполнение
- 03Позволяет приостанавливать и возобновлять выполнение, а также задавать тайм-аут для каждого узла
- 04Передаёт параметры, сообщения и события между узлами
- 05Не имеет сторонних зависимостей, использует C++11 и предоставляет Python-привязки
Сценарии использования
- Оркестрация многоэтапных алгоритмических конвейеров и конвейеров обработки данных в приложениях на C++
- Представление этапов предварительной и последующей обработки при инференсе ИИ в виде графа зависимостей
- Встраивание планировщика графов задач во встраиваемые проекты или проекты для Android без внешних библиотек
Быстрый старт
- 1
Установите Python binding из PyPI
pip install pycgraph - 2
Сохраните пример на Python из README в виде скрипта и запустите его с помощью Python
Что важно знать
- В README не показана установка версии на C++ через менеджер пакетов; её нужно собрать из исходного кода, следуя отдельному руководству COMPILE.md.
- Основной README написан на китайском языке, а ссылка на отдельный README на английском ведёт прямо из него.
В подборках
Темы
Частые вопросы
- Что такое CGraph?
- CGraph — не требующий сторонних зависимостей C++11-фреймворк для построения и выполнения параллельных графов задач с Python-привязкой pycgraph. CGraph — кроссплатформенный фреймворк на C++ для описания и выполнения ориентированных ациклических графов задач. Вы наследуете класс узла, реализуете его метод run() и задаёте зависимости между узлами. Планировщик запускает зависимые узлы по порядку, а независимые — параллельно; также поддерживаются пауза, возобновление и тайм-ауты.
- CGraph можно использовать бесплатно? Какая у него лицензия?
- CGraph распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- CGraph всё ещё поддерживается?
- Активно поддерживается. Последний коммит в CGraph — 3 нояб. 2026 г..
- Для чего можно использовать CGraph?
- Оркестрация многоэтапных алгоритмических конвейеров и конвейеров обработки данных в приложениях на C++ Представление этапов предварительной и последующей обработки при инференсе ИИ в виде графа зависимостей Встраивание планировщика графов задач во встраиваемые проекты или проекты для Android без внешних библиотек
- Как установить CGraph?
- Установите Python binding из PyPI: pip install pycgraph Сохраните пример на Python из README в виде скрипта и запустите его с помощью Python
- Где скачать CGraph?
- Исходный код и инструкции по установке — на GitHub: https://github.com/ChunelFeng/CGraph
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Фреймворк на Python поверх luigi для построения ML-пайплайнов с автоматическим кэшированием, воспроизводимостью и управлением зависимостями.
Распределённый фреймворк на Java для планирования задач: cron, по фиксированному интервалу, с задержкой и в стиле MapReduce на серверных и рабочих узлах.
Open-source-платформа на TypeScript для создания и развёртывания долгоживущих AI-агентов и фоновых процессов с повторами, очередями и мониторингом.
Нативный для контейнеров движок оркестрации параллельных задач в Kubernetes, реализованный как CRD.
Библиотека Python для создания готовых к эксплуатации веб-приложений на основе данных и AI-алгоритмов с UI, пайплайнами и планированием задач.