RPC、サービスディスカバリー、メッセージング、ストレージ、設定に加え、エージェント、ツール、ワークフローを備えた分散システム向けGoフレームワーク。
sogou/srpc
SogouのWorkflowエンジンを基盤とするC++ RPCフレームワーク。Linux、macOS、WindowsでSRPC、bRPC、Thrift、tRPCに対応。
- スター
- 2,142
- フォーク
- 411
- 未解決の Issue
- 34
- 最終コミット
- 4 時間前
これは何?
SRPCは、SogouのWorkflowライブラリを基盤にC++で実装されたRPCフレームワークです。SRPC、bRPC、Thrift、tRPCなど複数のワイヤープロトコルに対応し、ProtobufまたはThriftのIDL定義を受け付けて、クライアントとサーバーのスタブを生成します。
基本的な呼び出しに加え、JSON、Protobuf、Thriftのバイナリ形式、gzip、zlib、snappy、lz4による圧縮、tcp、udp、sctp、TLSの各トランスポートに対応しています。HTTP+JSON経由でアクセスできるため、あらゆる言語のクライアントから通常のHTTPでサービスを呼び出せます。リクエストはWorkflowのseriesおよびparallelプリミティブと組み合わせられます。また、OpenTelemetryへのトレース出力と、OpenTelemetryまたはPrometheusへのメトリクス出力に対応したAOPモジュールを備えています。
主な機能
- 01SRPC、bRPC、Thrift、tRPCの各プロトコルに対応します。
- 02ProtobufおよびThriftのIDLを受け付け、スタブを生成します。
- 03HTTP+JSONを提供し、あらゆる言語からサービスを呼び出せます。
- 04gzip、zlib、snappy、lz4でペイロードを圧縮します。
- 05トレースをOpenTelemetryに、メトリクスをPrometheusに出力します。
ユースケース
- C++で高スループットな内部マイクロサービスを構築する。
- bRPCまたはtRPCのサービスを、Workflowベースのコードベースと連携させる。
- 他言語のクライアント向けに、RPCサービスをHTTP+JSONで公開する。
- C++サービスにOpenTelemetryのトレースとPrometheusのメトリクスを追加する。
クイックスタート
- 1
インストールガイドに従って、srpcをソースからビルドするか、システムパッケージからインストールします
- 2
example.protoからC++コードを生成します
protoc example.proto --cpp_out=./ --proto_path=./ - 3
サーバーをコンパイルします(Linux)
g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc - 4
サーバーを起動し、別のターミナルでクライアントを実行します
./server
使う前に知っておきたいこと
- クイックスタートのコンパイルコマンドはLinuxのみを対象としています。他のシステムでは、チュートリアルに記載されたcmakeの設定が必要です。
- READMEにはパッケージマネージャーを使ったインストールコマンドが記載されていないため、ソースからビルドするか、システムパッケージを使う必要があります。
収録されている特集
トピック
よくある質問
- srpc とは?
- SogouのWorkflowエンジンを基盤とするC++ RPCフレームワーク。Linux、macOS、WindowsでSRPC、bRPC、Thrift、tRPCに対応。 SRPCは、SogouのWorkflowライブラリを基盤にC++で実装されたRPCフレームワークです。SRPC、bRPC、Thrift、tRPCなど複数のワイヤープロトコルに対応し、ProtobufまたはThriftのIDL定義を受け付けて、クライアントとサーバーのスタブを生成します。
- srpc は無料で使えますか?ライセンスは?
- srpc は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- srpc は今もメンテナンスされていますか?
- 活発にメンテナンス中。srpc の最終コミットは 2026年11月7日 です。
- srpc は何に使えますか?
- C++で高スループットな内部マイクロサービスを構築する。 bRPCまたはtRPCのサービスを、Workflowベースのコードベースと連携させる。 他言語のクライアント向けに、RPCサービスをHTTP+JSONで公開する。 C++サービスにOpenTelemetryのトレースとPrometheusのメトリクスを追加する。
- srpc のインストール方法は?
- インストールガイドに従って、srpcをソースからビルドするか、システムパッケージからインストールします example.protoからC++コードを生成します: protoc example.proto --cpp_out=./ --proto_path=./ サーバーをコンパイルします(Linux): g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc サーバーを起動し、別のターミナルでクライアントを実行します: ./server
- srpc はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/sogou/srpc
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Sogouのバックエンドサービスで使われているC++11並列計算・非同期ネットワークフレームワーク。DAGベースのタスクワークフローを構築できます。
Googleが提供する、構造化データのシリアライズに使える言語・プラットフォーム非依存の形式とツールチェーン。protocコンパイラと多言語向けランタイムを備えています。
1つの.sk irファイルから、TypeScript、Python、Java、Go、C++など向けの型安全なデータモデルとRPCコードを生成する宣言的スキーマ言語。
HTTPとgRPCの統一トランスポート、ミドルウェア、Protobufベースのコード生成を備えた、クラウドネイティブなマイクロサービス構築向けの軽量Goフレームワーク。
サービス通信、ディスカバリー、トラフィック管理を実現するRPC・マイクロサービスフレームワーク、Apache DubboのJava実装。