brpc README

The project's README from github.com/apache/brpc. As one markdown file: README.md.

中文版

Linux Build Status MacOs Build Status

brpc logo (light) brpc logo (dark)

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.

"bRPC" means "better RPC".

You can use it to:

Try it!

Contribute code

Please refer to here.

Feedback and Getting involved

Code of Conduct

We follow the code of conduct from Apache Software Foundation, please refer it here Link

brpc (apache/brpc)

Searching Database…

17.6K ·GitHub
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.
What are similar projects?workflow, grpc-go, grpc-java, pingora, go-zero, dubbo, grpc, flatbuffers
Creator
apache
Size
44.7 MB
Stars
17.6K
Age
9y
Commits · 90 Days