sofa-pbrpc

module
v1.1.4-0...-97df346 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2017 License: BSD-2-Clause, BSD-3-Clause, BSL-1.0

README

sofa-pbrpc

Build Status 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

opensearch@baidu.com

Directories

Path Synopsis
go
examples/echo/echo
Package echo is a generated protocol buffer package.
Package echo is a generated protocol buffer package.
protoc-gen-go
protoc-gen-go is a plugin for the Google protocol buffer compiler to generate Go code.
protoc-gen-go is a plugin for the Google protocol buffer compiler to generate Go code.
protoc-gen-go/pbrpc
Package pbrpc outputs sofa-pbrpc service descriptions in Go code.
Package pbrpc outputs sofa-pbrpc service descriptions in Go code.
rpc_meta
Package meta is a generated protocol buffer package.
Package meta is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL