A light-weight RPC implementation of Google's protobuf RPC framework.
Wiki: https://github.com/baidu/sofa-pbrpc/wiki
- 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.
This lib depends on boost-1.53.0 (only need header), protobuf-2.4.1, snappy and zlib:
- boost - http://www.boost.org/
- protobuf - http://code.google.com/p/protobuf/
- snappy - http://code.google.com/p/snappy/
- zlib - http://zlib.net/
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:
- Modify the file './depends.mk' to specify depending libs.
The necessary libs are boost, protobuf, snappy, and zlib. - Run 'make' to build sofa-pbrpc.
The default optimization level is 'O2'.
To change it, modify the 'OPT' variable in file './Makefile'. - 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.
For sample code, please refer to './sample' and the wiki.
For performace details, please refer to the wiki.