Repolode
sogou

sogou/srpc

基于 Sogou C++ Workflow 的 C++ RPC 框架,支持 SRPC、bRPC、Thrift、tRPC 协议。

Star
2,142
Fork
410
未关闭 Issue
34
最近提交
14天前

这是什么?

SRPC 是一个用 C++ 编写的 RPC 框架,构建在 Sogou Workflow 异步库之上。它支持 SRPC、bRPC、Thrift、tRPC 等多种协议,可使用 Protobuf 或 Thrift IDL 定义接口并生成客户端与服务端代码。

框架支持 JSON、Protobuf、Thrift Binary 等数据格式,以及 gzip、zlib、snappy、lz4 压缩,传输层可用 tcp、udp、sctp 或 TCP SSL。通过 HTTP+JSON,任意语言的客户端都可以直接调用服务。请求还能与 Workflow 的串并联任务结合使用,并内置 AOP 模块,可将链路追踪上报到 OpenTelemetry,将指标上报到 OpenTelemetry 或 Prometheus。

核心功能

  • 01支持 SRPC、bRPC、Thrift、tRPC 四种协议。
  • 02支持 Protobuf 与 Thrift IDL,并生成客户端和服务端代码。
  • 03提供 HTTP+JSON 接口,任意语言均可调用服务。
  • 04支持 gzip、zlib、snappy、lz4 等压缩格式。
  • 05可将链路追踪上报至 OpenTelemetry,将指标上报至 Prometheus。

适用场景

  • 用 C++ 构建高吞吐的内部微服务。
  • 让 bRPC 或 tRPC 服务与基于 Workflow 的代码互通。
  • 通过 HTTP+JSON 为其他语言的客户端提供 RPC 服务。
  • 为 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 C++ Workflow 的 C++ RPC 框架,支持 SRPC、bRPC、Thrift、tRPC 协议。 SRPC 是一个用 C++ 编写的 RPC 框架,构建在 Sogou Workflow 异步库之上。它支持 SRPC、bRPC、Thrift、tRPC 等多种协议,可使用 Protobuf 或 Thrift IDL 定义接口并生成客户端与服务端代码。
srpc 可以免费使用吗?用的什么许可证?
srpc 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
srpc 还在维护吗?
活跃维护中。srpc 最近一次提交是在 2026年10月24日。
srpc 适合用来做什么?
用 C++ 构建高吞吐的内部微服务。 让 bRPC 或 tRPC 服务与基于 Workflow 的代码互通。 通过 HTTP+JSON 为其他语言的客户端提供 RPC 服务。 为 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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目