Repolode
sogou

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. 1

    インストールガイドに従って、srpcをソースからビルドするか、システムパッケージからインストールします

  2. 2

    example.protoからC++コードを生成します

    protoc example.proto --cpp_out=./ --proto_path=./
  3. 3

    サーバーをコンパイルします(Linux)

    g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc
  4. 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 の数値は毎日更新されます。

関連プロジェクト

1つの.sk irファイルから、TypeScript、Python、Java、Go、C++など向けの型安全なデータモデルとRPCコードを生成する宣言的スキーマ言語。

318+2 今週10TypeScriptMIT活発にメンテナンス更新 11 日前