Repolode
sogou

sogou/workflow

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.

Estrelas
14,423
Forks
2,551
Issues abertas
27
Último commit
há 3 dias

O que é?

O Sogou C++ Workflow é um engine em C++ para serviços de back-end que combina redes assíncronas com computação paralela. Os usuários organizam tarefas em séries, estruturas paralelas ou DAGs arbitrários, permitindo executar no mesmo fluxo requisições de rede, tarefas de computação e operações de I/O em arquivos.

O framework inclui clientes assíncronos integrados para HTTP, Redis, MySQL (incluindo MariaDB e TiDB) e Kafka, além de uma API de servidor HTTP que pode ser iniciada com poucas linhas de código. Também oferece suporte a protocolos definidos pelo usuário para criar clientes, servidores e sistemas RPC personalizados, além de governança de serviços e balanceamento de carga em arquiteturas de microsserviços.

O projeto é compatível com Linux, macOS, Windows (por meio de uma branch separada que usa IOCP) e Android. A branch master exige C++11 e OpenSSL 1.1 ou posterior, sem depender de boost ou asio. O protocolo Kafka também requer lz4, zstd e snappy.

Recursos principais

  • 01Cria grafos de tarefas em série, paralelos ou DAGs arbitrários.
  • 02Inclui clientes assíncronos para HTTP, Redis, MySQL e Kafka.
  • 03Permite criar servidores HTTP com poucas linhas de código.
  • 04Oferece suporte a protocolos definidos pelo usuário para clientes, servidores e RPC personalizados.
  • 05Executa tarefas de rede, computação e I/O em arquivos no mesmo workflow.
  • 06Oferece recursos de governança de serviços e balanceamento de carga.

Casos de uso

  • Criar serviços de back-end de alta concorrência que combinam chamadas de rede e tarefas limitadas pela CPU.
  • Orquestrar várias chamadas assíncronas a APIs ou bancos de dados com dependências entre elas.
  • Criar sistemas RPC personalizados com base em um protocolo definido pelo usuário.
  • Desenvolver componentes de microsserviços em C++ com balanceamento de carga integrado.

Início rápido

  1. 1

    Clone o repositório

    git clone https://github.com/sogou/workflow
  2. 2

    Entre no diretório do projeto e compile a biblioteca

    cd workflow make
  3. 3

    Compile os exemplos do tutorial

    cd tutorial make

Antes de usar

  • A branch master requer OpenSSL 1.1 ou superior, a menos que você use a branch nossl.
  • O suporte a Kafka requer a instalação de bibliotecas de compressão adicionais (lz4, zstd, snappy).
  • O suporte ao Windows fica em uma branch separada, não na base de código principal.

Em coleções

Tópicos

Perguntas frequentes

O que é workflow?
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. O Sogou C++ Workflow é um engine em C++ para serviços de back-end que combina redes assíncronas com computação paralela. Os usuários organizam tarefas em séries, estruturas paralelas ou DAGs arbitrários, permitindo executar no mesmo fluxo requisições de rede, tarefas de computação e operações de I/O em arquivos.
workflow é gratuito? Qual é a licença?
workflow é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
workflow ainda é mantido?
Manutenção ativa. O último commit de workflow foi em 22 de out. de 2026.
Para que posso usar workflow?
Criar serviços de back-end de alta concorrência que combinam chamadas de rede e tarefas limitadas pela CPU. Orquestrar várias chamadas assíncronas a APIs ou bancos de dados com dependências entre elas. Criar sistemas RPC personalizados com base em um protocolo definido pelo usuário. Desenvolver componentes de microsserviços em C++ com balanceamento de carga integrado.
Como instalar workflow?
Clone o repositório: git clone https://github.com/sogou/workflow Entre no diretório do projeto e compile a biblioteca: cd workflow make Compile os exemplos do tutorial: cd tutorial make
Onde consigo workflow?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/sogou/workflow

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados