An industrial-grade RPC framework for building reliable and high-performance services.

Why bRPC?

bRPC is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc.

You can use it to:

  • Build a server that can talk in multiple protocols (on same port), or access all sorts of services.
    1. restful http/https, h2/gRPC. using http/h2 in bRPC is much more friendly than libcurl. Access protobuf-based protocols with HTTP/h2+json, probably from another language.
    2. redis and memcached, thread-safe, more friendly and performant than the official clients.
    3. rtmp/flv/hls, for building streaming services.
    4. hadoop_rpc (may be opensourced).
    5. rdma support.
    6. thrift support, thread-safe, more friendly and performant than the official clients.
    7. all sorts of protocols used in Baidu: baidu_std, streaming_rpc, hulu_pbrpc, sofa_pbrpc, nova_pbrpc, public_pbrpc, ubrpc and nshead-based ones.
    8. Build HA distributed services using an industrial-grade implementation of RAFT consensus algorithm which is opensourced at braft
  • Servers can handle requests synchronously or asynchronously.
  • Clients can access servers synchronously, asynchronously, semi-synchronously, or use combo channels to simplify sharded or parallel accesses declaratively.
  • Debug services via http, and run cpu, heap and contention profilers.
  • Get better latency and throughput.
  • Extend bRPC with the protocols used in your organization quickly, or customize components, including naming services (dns, zk, etcd), load balancers (rr, random, consistent hashing)
  • The Apache Software Foundation

    bRPC is anApacheTop-Level Project