Implementación en Java de Apache Dubbo, un framework de RPC y microservicios para crear comunicación, descubrimiento y gestión del tráfico entre servicios.
sogou/workflow
Framework de computación paralela y redes asíncronas en C++11, usado en los servicios de back-end de Sogou para crear flujos de tareas basados en DAG.
- Estrellas
- 14,423
- Forks
- 2,551
- Issues abiertos
- 27
- Último commit
- anteayer
¿Qué es?
Sogou C++ Workflow es un motor en C++ para servicios de back-end que combina redes asíncronas con computación paralela. Los usuarios componen tareas en series, estructuras paralelas y DAG arbitrarios, de modo que las solicitudes de red, los trabajos de cómputo y las operaciones de E/S de archivos puedan ejecutarse en un mismo flujo.
El framework incluye clientes asíncronos integrados para HTTP, Redis, MySQL (incluidos MariaDB y TiDB) y Kafka, además de una API de servidor HTTP que puede ponerse en marcha con unas pocas líneas. También admite protocolos definidos por el usuario para crear clientes, servidores y sistemas RPC personalizados, así como funciones de gestión de servicios y balanceo de carga para arquitecturas de microservicios.
El proyecto es compatible con Linux, macOS, Windows (mediante una rama independiente que usa IOCP) y Android. Requiere C++11 y OpenSSL 1.1 o posterior en la rama master, y no depende de boost ni asio. El protocolo Kafka también requiere lz4, zstd y snappy.
Funciones clave
- 01Permite crear grafos de tareas en serie, paralelos y DAG arbitrarios.
- 02Incluye clientes asíncronos para HTTP, Redis, MySQL y Kafka.
- 03Permite crear servidores HTTP con unas pocas líneas de código.
- 04Admite protocolos definidos por el usuario para crear clientes, servidores y sistemas RPC personalizados.
- 05Ejecuta tareas de red, cómputo y E/S de archivos en un mismo flujo de trabajo.
- 06Ofrece funciones de gestión de servicios y balanceo de carga.
Casos de uso
- Crear servicios de back-end de alta concurrencia que combinen llamadas de red y trabajo limitado por CPU.
- Coordinar varias llamadas asíncronas a API o bases de datos con dependencias entre ellas.
- Crear sistemas RPC personalizados basados en un protocolo definido por el usuario.
- Desarrollar componentes de microservicios en C++ con balanceo de carga integrado.
Inicio rápido
- 1
Clona el repositorio
git clone https://github.com/sogou/workflow - 2
Entra en el directorio del proyecto y compila la biblioteca
cd workflow make - 3
Compila los ejemplos del tutorial
cd tutorial make
Antes de usarlo
- La rama master requiere OpenSSL 1.1 o una versión posterior, salvo que uses la rama nossl.
- La compatibilidad con Kafka requiere instalar bibliotecas de compresión adicionales (lz4, zstd, snappy).
- La compatibilidad con Windows está en una rama independiente, no en el código principal.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es workflow?
- Framework de computación paralela y redes asíncronas en C++11, usado en los servicios de back-end de Sogou para crear flujos de tareas basados en DAG. Sogou C++ Workflow es un motor en C++ para servicios de back-end que combina redes asíncronas con computación paralela. Los usuarios componen tareas en series, estructuras paralelas y DAG arbitrarios, de modo que las solicitudes de red, los trabajos de cómputo y las operaciones de E/S de archivos puedan ejecutarse en un mismo flujo.
- ¿workflow es gratuito? ¿Qué licencia tiene?
- workflow es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿workflow sigue mantenido?
- Mantenimiento activo. El último commit de workflow fue el 22 oct 2026.
- ¿Para qué puedo usar workflow?
- Crear servicios de back-end de alta concurrencia que combinen llamadas de red y trabajo limitado por CPU. Coordinar varias llamadas asíncronas a API o bases de datos con dependencias entre ellas. Crear sistemas RPC personalizados basados en un protocolo definido por el usuario. Desarrollar componentes de microservicios en C++ con balanceo de carga integrado.
- ¿Cómo se instala workflow?
- Clona el repositorio: git clone https://github.com/sogou/workflow Entra en el directorio del proyecto y compila la biblioteca: cd workflow make Compila los ejemplos del tutorial: cd tutorial make
- ¿Dónde consigo workflow?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/sogou/workflow
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Microframework de C++ rápido y al estilo de Flask para crear servicios web HTTP y WebSocket; solo requiere archivos de cabecera y es fácil de usar.
Biblioteca base ligera de C++ que reúne corrutinas al estilo goroutine, networking, logging, análisis de flags, JSON, pruebas unitarias y benchmarking.
Un complemento pequeño para la biblioteca requests de Python que envía solicitudes HTTP de forma asíncrona con concurrent.futures.
Un runtime asíncrono para Rust que ofrece planificación de tareas, E/S no bloqueante, networking y temporizadores para crear aplicaciones de red fiables.
Una biblioteca C que ofrece E/S asíncrona multiplataforma y proporciona el bucle de eventos que usa Node.js.