Apache Dubbo 的 Java 实现,一个用于构建 RPC 通信与微服务的框架。
sogou/workflow
搜狗开源的 C++ 并行计算与异步网络框架,用于构建基于 DAG 的任务流。
- Star
- 14,423
- Fork
- 2,551
- 未关闭 Issue
- 27
- 最近提交
- 前天
这是什么?
Sogou C++ Workflow 是一个用于后端服务的 C++ 引擎,把异步网络通信与并行计算整合在同一套任务模型中。开发者可以将任务按串行、并行或任意 DAG 结构组织成工作流,网络请求、计算任务和文件 IO 都能放在同一个流程里执行。
框架内置 HTTP、Redis、MySQL(兼容 MariaDB、TiDB)和 Kafka 的异步客户端,并提供可快速启动的 HTTP 服务端接口。它还支持自定义协议,用于实现客户端、服务端和 RPC 系统,并包含服务治理与负载均衡能力,适合微服务架构。
项目支持 Linux、macOS、Android,Windows 版本位于独立分支并基于 IOCP 实现异步网络。编译需要支持 C++11 的编译器,master 分支依赖 OpenSSL 1.1 及以上版本,不依赖 boost 或 asio。使用 Kafka 协议时还需安装 lz4、zstd 和 snappy。
核心功能
- 01支持串行、并行及任意 DAG 结构的任务编排。
- 02内置 HTTP、Redis、MySQL、Kafka 异步客户端。
- 03几行代码即可搭建 HTTP 服务端。
- 04支持自定义协议,用于实现客户端、服务端和 RPC 系统。
- 05网络请求、计算任务与文件 IO 可在同一流程中执行。
- 06内置服务治理与负载均衡功能。
适用场景
- 构建同时包含网络调用和计算任务的高并发后端服务。
- 编排多个存在依赖关系的异步 API 或数据库调用。
- 基于自定义协议实现 RPC 系统。
- 用 C++ 开发带负载均衡能力的微服务组件。
快速上手
- 1
克隆代码仓库
git clone https://github.com/sogou/workflow - 2
进入项目目录并编译库
cd workflow make - 3
编译教程示例
cd tutorial make
使用前须知
- 主分支需要 OpenSSL 1.1 或更高版本,若不使用 SSL 可改用 nossl 分支。
- 使用 Kafka 协议需要额外安装 lz4、zstd 和 snappy 压缩库。
- Windows 版本位于独立分支,而非主代码分支。
收录于专题
标签
常见问题
- workflow 是什么?
- 搜狗开源的 C++ 并行计算与异步网络框架,用于构建基于 DAG 的任务流。 Sogou C++ Workflow 是一个用于后端服务的 C++ 引擎,把异步网络通信与并行计算整合在同一套任务模型中。开发者可以将任务按串行、并行或任意 DAG 结构组织成工作流,网络请求、计算任务和文件 IO 都能放在同一个流程里执行。
- workflow 可以免费使用吗?用的什么许可证?
- workflow 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- workflow 还在维护吗?
- 活跃维护中。workflow 最近一次提交是在 2026年10月22日。
- workflow 适合用来做什么?
- 构建同时包含网络调用和计算任务的高并发后端服务。 编排多个存在依赖关系的异步 API 或数据库调用。 基于自定义协议实现 RPC 系统。 用 C++ 开发带负载均衡能力的微服务组件。
- workflow 怎么安装和运行?
- 克隆代码仓库: git clone https://github.com/sogou/workflow 进入项目目录并编译库: cd workflow make 编译教程示例: cd tutorial make
- 在哪里获取 workflow?
- 源代码和安装说明在 GitHub 上:https://github.com/sogou/workflow
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个快速、易用、类 Flask 路由风格的 C++ 微框架,用于构建 HTTP 和 WebSocket 服务。
一个轻量的 C++ 基础库,集成 goroutine 风格协程、网络、日志、命令行参数、JSON、单元测试与基准测试。
为 Python requests 库提供的轻量扩展,基于 concurrent.futures 异步发送 HTTP 请求。
Rust 异步运行时,提供任务调度、非阻塞 I/O、网络和定时器,用于构建可靠的异步应用。
跨平台异步 I/O 的 C 语言库,也是 Node.js 底层所用的事件循环基础。