mirror of
https://github.com/apache/brpc.git
synced 2026-11-06 13:33:16 +00:00
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".
https://brpc.apache.org
- C++ 94.2%
- CMake 1.3%
- Perl 1%
- Starlark 1%
- Shell 0.6%
- Other 1.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .github | ||
| bazel | ||
| cmake | ||
| community | ||
| docs | ||
| example | ||
| homebrew-formula | ||
| java | ||
| package/rpm | ||
| python | ||
| registry/modules/libunwind | ||
| src | ||
| test | ||
| tools | ||
| .asf.yaml | ||
| .bazelignore | ||
| .bazelrc | ||
| .bazelversion | ||
| .gitignore | ||
| .licenserc.yaml | ||
| AGENTS.md | ||
| BUILD.bazel | ||
| CHANGES.md | ||
| CLAUDE.md | ||
| CMakeLists.txt | ||
| CODE_OF_CONDUCT.md | ||
| config_brpc.sh | ||
| CONTRIBUTING.md | ||
| Dockerfile | ||
| LICENSE | ||
| Makefile | ||
| MODULE.bazel | ||
| NOTICE | ||
| README.md | ||
| README_cn.md | ||
| RELEASE_VERSION | ||
| SECURITY.md | ||
| THREAT_MODEL.md | ||
| WORKSPACE | ||
| WORKSPACE.bzlmod | ||
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:
- Build a server that can talk in multiple protocols (on same port), or access all sorts of services:
- 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.
- redis and memcached, thread-safe, more friendly and performant than the official clients.
- rtmp/flv/hls, for building streaming services.
- hadoop_rpc (may be opensourced).
- rdma support.
- thrift support, thread-safe, more friendly and performant than the official clients.
- all sorts of protocols used in Baidu: baidu_std, streaming_rpc, hulu_pbrpc, sofa_pbrpc, nova_pbrpc, public_pbrpc, ubrpc and nshead-based ones.
- 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).
Try it!
- Read overview to know where bRPC can be used and its advantages.
- Read getting started for building steps and play with examples.
- Docs:
- Performance benchmark
- bvar
- bthread
- Client
- Server
- Builtin Services
- Tools
- Others
- IOBuf
- Streaming Log
- FlatMap
- Coroutine
- Circuit Breaker
- UBRing
- RDMA
- Bazel Support
- Wireshark baidu_std dissector plugin
- bRPC introduction(training material)
- A tutorial on building large-scale services(training material)
- bRPC internal(training material)
- RPC in depth
- Use cases
Contribute code
Please refer to here.
Feedback and Getting involved
- Report bugs, ask questions or give suggestions by Github Issues.
- Subscribe to the mailing list(dev-subscribe@brpc.apache.org) to get updated with the project.
Code of Conduct
We follow the code of conduct from Apache Software Foundation, please refer it here Link.

