Baike.dev
All toolsTrendingOpen sourceNewsSubmit
Log in
< 返回工具列表
B

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, Advertis

17.6K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertis

中文版

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
      • bvar_c++
    • bthread
      • bthread or not
      • thread-local
      • Execution Queue
      • bthread tracer
      • bthread tagged task group
    • Client
      • Basics
      • Error code
      • Combo channels
      • Access http/h2
      • Access gRPC
      • Access thrift
      • Access UB
      • Streaming RPC
      • Access redis
      • Access memcached
      • Backup request
      • Dummy server
    • Server
      • Basics
      • Serve http/h2
      • Serve gRPC
      • Serve thrift
      • Serve Nshead
      • Debug server issues
      • Server push
      • Avalanche
      • Auto ConcurrencyLimiter
      • Media Server
      • json2pb
    • Builtin Services
      • status
      • vars
      • connections
      • flags
      • rpcz
      • cpu_profiler
      • heap_profiler
      • contention_profiler
    • Tools
      • rpc_press
      • rpc_replay
      • rpc_view
      • benchmark_http
      • parallel_http
    • 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
      • New Protocol
      • Atomic instructions
      • IO
      • Threading Overview
      • Load Balancing
      • Locality-aware
      • Consistent Hashing
      • Memory Management
      • Timer keeping
      • bthread_id
    • Use cases
      • User 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([email protected]) to get updated with the project

Code of Conduct

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

核心特点

  • •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.

> 标签

C++rpc

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月9日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言
Baike.dev

baike.dev helps you discover great languages, frameworks, databases, DevOps and cloud-native tools.

Quick links

  • Home
  • All tools
  • Trending
  • Open source

About

  • About us
  • Community
  • News

Contribute

Found a great developer tool? Share it with the community.

Submit a tool
© 2026 baike.dev Developer EncyclopediaUpdated daily · Discover great developer tools