srpc高性能通用 RPC 框架
srpc 是搜狗自研的 RPC 系统,主要功能和特点如下:
- 这是一个基于Sogou C++ Workflow的项目,兼具: 
  
- 高性能
 - 低开发和接入门槛
 - 完美兼容workflow的串并联任务流
 - 对于已有pb/thrift描述文件的项目,可以做到一键迁移
 
 - 支持多种IDL格式,包括: 
  
- Protobuf
 - Thrift
 
 - 支持多种数据布局,使用上完全透明,包括: 
  
- Protobuffer serialize
 - Thrift Binary serialize
 - json serialize
 
 - 支持多种压缩,使用上完全透明,包括: 
  
- gzip
 - zlib
 - snappy
 - lz4
 
 - 支持多种通信协议,使用上完全透明,包括: 
  
- tcp
 - http
 - sctp
 - ssl
 - https
 
 - 用户可以通过http+json实现跨语言: 
  
- 如果自己是server提供方,用任何语言的http server接受post请求,解析若干http header即可
 - 如果自己是client调用方,用任何语言的http client发送post请求,添加若干http header即可
 
 - 内置了可以与其他RPC框架的server/client无缝互通的client/server,包括: 
  
- BPRC
 - Thrift Framed Binary
 - Thrift Http Binary
 
 - 兼容workflow的使用方式: 
  
- 提供创建任务的接口来创建一个rpc任务
 - 可以把rpc任务放到任务流图中,回调函数里也可以拿到当前的任务流
 - workflow所支持的其他功能,包括upstream、计算调度、异步文件IO等
 
 - 更多功能和层次介绍
 
Installation
- srpc是一个静态库libsrpc.a,只有开发环境需要依赖libsrpc,编译后二进制发布不需要依赖libsrpc库
 - srpc依赖workflow和protobuf3 
  
- protobuf需要用户自行安装v3.0.0以上的版本
 - workflow可以通过git的submodule形式进行依赖
 - 压缩库snappy和lz4也以submodule的形式在third_party/中作源码依赖
 
 
git clone --recursive https://github.com/sogou/srpc.git cd srpc make sudo make install
评论
