Skip to content

A light-weight RPC implement of google protobuf RPC framework.

License

Notifications You must be signed in to change notification settings

qinzuoyan/sofa-pbrpc

This branch is up to date with baidu/sofa-pbrpc:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fb1a1cb · Jan 27, 2022
Dec 28, 2016
Oct 24, 2016
Dec 21, 2016
Nov 9, 2015
Dec 28, 2016
Sep 12, 2018
Nov 26, 2016
Jan 27, 2022
Dec 28, 2016
Mar 12, 2018
May 21, 2014
Jan 3, 2017
Apr 4, 2015
Oct 25, 2016
May 21, 2014
Jan 14, 2017
Nov 25, 2016
Dec 25, 2016
Apr 4, 2015
Dec 28, 2016
Dec 22, 2016
Dec 7, 2015

Repository files navigation

sofa-pbrpc

Build Status Join the chat at https://gitter.im/sofa-pbrpc/rpc Coverity Scan Build Status

A light-weight RPC implementation of Google's protobuf RPC framework.

Wiki: https://github.com/baidu/sofa-pbrpc/wiki

Features

  • High performace.
  • Easy to use. Refer to sample code in './sample'.
  • Supports sync call and async call. Refer to './sample/echo'.
  • Supports three level (service/method/request) timeout. Refer to './sample/timeout_sample'.
  • Supports transparent compression. Refer to './sample/compress_sample'.
  • Supports mock test. Refer to './sample/mock_sample'.
  • Supports network flow control.
  • Supports auto connecting and reconnecting.
  • Supports keep alive time of idle connections.
  • Supports statistics for profiling.
  • Supports multi-server load balance and fault tolerance.
  • Supports http protocol.
  • Provides web monitor.
  • Provides python client library.

Dependencies

This lib depends on boost-1.53.0 (only need header), protobuf-2.4.1, snappy and zlib:

ATTENTION: boost header is only needed when compiling the lib, but is not needed for user code.

Extrally, './unit-test' and './sample/mock_sample' also depends on gtest:

Build

  1. Modify the file './depends.mk' to specify depending libs.
    The necessary libs are boost, protobuf, snappy, and zlib.
  2. Run 'make' to build sofa-pbrpc.
    The default optimization level is 'O2'.
    To change it, modify the 'OPT' variable in file './Makefile'.
  3. Run 'make install' to install sofa-pbrpc.
    The default install directory is './output'.
    To change it, modify the 'PREFIX' variable in file './Makefile'.

For more details, please refer to the wiki Build Guide.

Sample

For sample code, please refer to './sample' and the wiki Quick Start.

Profiling

For Profiling feature, please refer to the wiki Profiling.

Performance

For performace details, please refer to the wiki Performance.

Implementation

For implementation details, please refer to the wiki and file doc/sofa-pbrpc-document.md.

Support

[email protected]

About

A light-weight RPC implement of google protobuf RPC framework.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 97.6%
  • Python 0.7%
  • Perl 0.7%
  • Makefile 0.5%
  • Shell 0.3%
  • Starlark 0.2%