Framework de computação paralela e redes assíncronas em C++11, usado nos serviços de back-end da Sogou para criar workflows de tarefas baseados em DAG.
ChunelFeng/CGraph
Framework DAG para C++11 sem dependências, que permite criar e executar grafos de tarefas paralelas, com binding para Python (pycgraph).
- Estrelas
- 2,317
- Forks
- 391
- Issues abertas
- 13
- Último commit
- há 5 dias
O que é?
CGraph é um framework multiplataforma para C++ que permite descrever e executar grafos acíclicos direcionados de tarefas. Você cria uma subclasse de nó, implementa o método run() e declara as dependências entre os nós. Então, o scheduler executa os nós dependentes na ordem correta e os nós independentes em paralelo, com suporte a pausa, retomada e timeouts.
Além das dependências simples, o framework oferece grupos para ramificações condicionais, loops e execução concorrente, além de passagem de parâmetros, eventos, mensagens e aspectos para lógica transversal. Ele é desenvolvido com a biblioteca padrão do C++11, compila em macOS, Linux, Windows e Android e também está disponível como pacote Python pycgraph.
O projeto é voltado a desenvolvedores que precisam orquestrar pipelines de processamento com várias etapas em código nativo, como fluxos de trabalho de algoritmos ou pré e pós-processamento de inferência, sem adicionar dependências externas.
Recursos principais
- 01Executa nós dependentes na ordem correta e nós independentes em paralelo
- 02Oferece ramificações condicionais, loops e execução em grupos
- 03Permite pausar, retomar e configurar timeouts por nó
- 04Transfere parâmetros, mensagens e eventos entre nós
- 05Não tem dependências de terceiros e compila com C++11; também oferece bindings para Python
Casos de uso
- Orquestrar pipelines de algoritmos ou processamento de dados em várias etapas em aplicações C++
- Estruturar etapas de pré e pós-processamento de inferência de IA como um grafo de dependências
- Incorporar um scheduler de grafos de tarefas em projetos embarcados ou Android sem bibliotecas externas
Início rápido
- 1
Instale o binding de Python pelo PyPI
pip install pycgraph - 2
Salve a demonstração de Python do README como um script e execute-a com Python
Antes de usar
- O README não mostra como instalar a versão em C++ com um gerenciador de pacotes; é preciso compilá-la a partir do código-fonte seguindo o guia separado COMPILE.md.
- O README principal está escrito em chinês e inclui um link para um README separado em inglês.
Em coleções
Tópicos
Perguntas frequentes
- O que é CGraph?
- Framework DAG para C++11 sem dependências, que permite criar e executar grafos de tarefas paralelas, com binding para Python (pycgraph). CGraph é um framework multiplataforma para C++ que permite descrever e executar grafos acíclicos direcionados de tarefas. Você cria uma subclasse de nó, implementa o método run() e declara as dependências entre os nós. Então, o scheduler executa os nós dependentes na ordem correta e os nós independentes em paralelo, com suporte a pausa, retomada e timeouts.
- CGraph é gratuito? Qual é a licença?
- CGraph é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- CGraph ainda é mantido?
- Manutenção ativa. O último commit de CGraph foi em 3 de nov. de 2026.
- Para que posso usar CGraph?
- Orquestrar pipelines de algoritmos ou processamento de dados em várias etapas em aplicações C++ Estruturar etapas de pré e pós-processamento de inferência de IA como um grafo de dependências Incorporar um scheduler de grafos de tarefas em projetos embarcados ou Android sem bibliotecas externas
- Como instalar CGraph?
- Instale o binding de Python pelo PyPI: pip install pycgraph Salve a demonstração de Python do README como um script e execute-a com Python
- Onde consigo CGraph?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ChunelFeng/CGraph
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Framework Python baseado em luigi para criar pipelines de machine learning com cache automático, reprodutibilidade e gerenciamento de dependências.
Framework Java distribuído para agendamento de tarefas CRON, em intervalo fixo, com atraso e no estilo MapReduce, em nós de servidor e worker.
Plataforma open source em TypeScript para criar e implantar agentes de IA duráveis e de longa duração e workflows em background, com retries, filas e observabilidade.
Engine de workflows nativo de contêineres para orquestrar jobs paralelos no Kubernetes, implementado como um CRD.
Biblioteca Python para transformar dados e algoritmos de IA em aplicações web prontas para produção, com interface, pipelines e agendamento.