Repolode
sogou

sogou/workflow

Sogouのバックエンドサービスで使われているC++11並列計算・非同期ネットワークフレームワーク。DAGベースのタスクワークフローを構築できます。

スター
14,425
フォーク
2,552
未解決の Issue
27
最終コミット
一昨日

これは何?

Sogou C++ Workflowは、非同期ネットワーク処理と並列計算を組み合わせたバックエンドサービス向けのC++エンジンです。タスクを直列、並列、または任意のDAG構造に組み合わせることで、ネットワークリクエスト、計算処理、ファイルIOをすべて同じフローで実行できます。

HTTP、Redis、MySQL(MariaDBとTiDBを含む)、Kafka向けの非同期クライアントを標準で備えており、数行のコードで起動できるHTTPサーバーAPIも提供します。また、独自のクライアント、サーバー、RPCシステムを構築するためのユーザー定義プロトコルに対応し、マイクロサービス環境向けのサービスガバナンスとロードバランシングもサポートしています。

Linux、macOS、Windows(IOCPを使用する別ブランチ経由)、Androidを対象としています。masterブランチではC++11とOpenSSL 1.1以降が必要ですが、boostやasioには依存しません。Kafkaプロトコルを利用する場合は、さらにlz4、zstd、snappyが必要です。

主な機能

  • 01直列、並列、任意のDAGタスクグラフを構築できます。
  • 02HTTP、Redis、MySQL、Kafka向けの非同期クライアントを備えています。
  • 03短いコードでHTTPサーバーを構築できます。
  • 04独自のクライアント、サーバー、RPC向けのユーザー定義プロトコルをサポートしています。
  • 05ネットワーク処理、計算処理、ファイルIOのタスクを同じワークフローで実行できます。
  • 06サービスガバナンスとロードバランシング機能を提供します。

ユースケース

  • ネットワーク呼び出しとCPU負荷の高い処理を組み合わせた、高並行バックエンドサービスの構築。
  • 依存関係のある複数の非同期API呼び出しやデータベース呼び出しのオーケストレーション。
  • ユーザー定義プロトコルをベースにした独自RPCシステムの作成。
  • ロードバランシング機能を備えたC++製マイクロサービスコンポーネントの開発。

クイックスタート

  1. 1

    リポジトリをクローンする

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

    プロジェクトディレクトリに移動してライブラリをビルドする

    cd workflow make
  3. 3

    チュートリアルのサンプルをビルドする

    cd tutorial make

使う前に知っておきたいこと

  • nosslブランチを使用しない場合、masterブランチにはOpenSSL 1.1以降が必要です。
  • Kafkaのサポートには、追加の圧縮ライブラリ(lz4、zstd、snappy)のインストールが必要です。
  • Windowsのサポートはメインのコードベースではなく、別のブランチにあります。

収録されている特集

トピック

よくある質問

workflow とは?
Sogouのバックエンドサービスで使われているC++11並列計算・非同期ネットワークフレームワーク。DAGベースのタスクワークフローを構築できます。 Sogou C++ Workflowは、非同期ネットワーク処理と並列計算を組み合わせたバックエンドサービス向けのC++エンジンです。タスクを直列、並列、または任意のDAG構造に組み合わせることで、ネットワークリクエスト、計算処理、ファイルIOをすべて同じフローで実行できます。
workflow は無料で使えますか?ライセンスは?
workflow は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
workflow は今もメンテナンスされていますか?
活発にメンテナンス中。workflow の最終コミットは 2026年10月22日 です。
workflow は何に使えますか?
ネットワーク呼び出しとCPU負荷の高い処理を組み合わせた、高並行バックエンドサービスの構築。 依存関係のある複数の非同期API呼び出しやデータベース呼び出しのオーケストレーション。 ユーザー定義プロトコルをベースにした独自RPCシステムの作成。 ロードバランシング機能を備えたC++製マイクロサービスコンポーネントの開発。
workflow のインストール方法は?
リポジトリをクローンする: git clone https://github.com/sogou/workflow プロジェクトディレクトリに移動してライブラリをビルドする: cd workflow make チュートリアルのサンプルをビルドする: cd tutorial make
workflow はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/sogou/workflow

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト