What is this?
bRPC is an industrial-grade C++ RPC framework built at Baidu for high-performance systems like search, storage, machine learning, advertisement and recommendation; the name stands for 'better RPC'.
Is this a ready-made server, or a framework I build my own services with?
It is a C++ framework/library you link into your own code to build servers that speak multiple protocols on the same port, and clients that can access them synchronously, asynchronously, or semi-synchronously.
How do I build and start using it?
Build it from source following the project's getting-started guide (with Bazel/Make support), or use the provided Dockerfile; example services are included to try protocols out right away.
Are all the protocols it mentions fully available out of the box?
Most are, but at least one listed protocol (hadooprpc) is noted as only possibly open-sourced, so not everything mentioned is guaranteed to be in the public repo yet.
Is this meant for small side projects or large-scale systems?
It targets large-scale, high-performance production systems — it's used in Baidu's search, storage, ML, ads and recommendation infrastructure.
Does it run on Windows as well as Linux and macOS?
Only Linux and macOS are covered by the project's CI pipelines; there is no Windows CI job, so Windows isn't an officially tested target.
What does the name 'brpc' actually mean?
The project's own README explains it as 'better RPC' — a play on the generic term RPC.
What protocols can a single bRPC server speak?
A single server can handle multiple protocols on the same port, including HTTP/HTTPS, gRPC (h2), Redis, Memcached, Thrift, RTMP/FLV/HLS and several Baidu-internal protocols.
How do I build highly available distributed services with it?
bRPC ships an industrial-grade implementation of the RAFT consensus algorithm, also open-sourced separately as 'braft', for building HA distributed services.
Can I debug or profile a running bRPC service?
Yes — built-in HTTP-based debugging exposes status, vars, connections and flags, and lets you run CPU, heap, and contention profilers directly on a live server.
Which topics is it in?
protocol-buffers, profiler, consensus, load-balancer, rpc, grpc, concurrency, microservices, high-performance, redis, http, distributed-systems
