Git Product home page Git Product logo

sofa-pbrpc's Introduction

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]

sofa-pbrpc's People

Contributors

qinzuoyan avatar cyshi avatar zd-double avatar bluebore avatar koalademo avatar yan97ao avatar teodor-pripoae avatar yvxiang avatar 00k avatar yuandong1222 avatar richardyao avatar demiaowu avatar dy2012 avatar gmd20 avatar

Watchers

James Cloos avatar Bob Wang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.