MCPcopy Create free account
hub / github.com/baidu/sofa-pbrpc

github.com/baidu/sofa-pbrpc @v1.1.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.4 ↗ · + Follow
2,613 symbols 4,374 edges 176 files 215 documented · 8% updated 2y agonoboost-v0.0.2 · 2017-01-20★ 2,13947 open issues

Browse by type

Functions 2,048 Types & classes 565
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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: * 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: * gtest - http://code.google.com/p/googletest/

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

Core symbols most depended-on inside this repo

Shape

Method 1,816
Class 543
Function 232
Enum 22

Languages

C++99%
Python1%

Modules by API surface

src/sofa/pbrpc/ext_closure.h993 symbols
src/sofa/pbrpc/closure.h92 symbols
src/rapidjson/document.h65 symbols
unit-test/test_ext_closure.cc57 symbols
src/sofa/pbrpc/rpc_controller_impl.h51 symbols
src/sofa/pbrpc/smart_ptr/shared_ptr.hpp46 symbols
src/rapidjson/rapidjson.h39 symbols
src/sofa/pbrpc/service_pool.h36 symbols
src/sofa/pbrpc/rpc_message_stream.h32 symbols
src/rapidjson/reader.h32 symbols
src/sofa/pbrpc/rpc_server_message_stream.h30 symbols
src/sofa/pbrpc/web_service.cc28 symbols

For agents

$ claude mcp add sofa-pbrpc \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page