
New releaseSep 18, 2026
brpc v1.18.0
高性能な分散システムを構築するための産業グレードのC++ RPCフレームワーク。複数のプロトコル(HTTP、gRPC、Redis、Thrift)をサポートし、ロードバランシング、ネーミングサービス、RAFTコンセンサスを内蔵。

bRPC は、C++言語を使用した産業グレードのRPCフレームワークであり、検索、ストレージ、機械学習、広告、レコメンデーションなどの高性能システムでよく使用されています。
"bRPC" は "better RPC" を意味します。
以下の用途に使用できます:
- 複数のプロトコル(同一ポート上)で通信可能なサーバーを構築するか、あらゆる種類のサービスにアクセスします
- restful http/https、h2/gRPC。bRPCでのhttp/h2の使用はlibcurlよりもはるかに使いやすいです。HTTP/h2+jsonを使用してprotobufベースのプロトコルにアクセスします(おそらく別の言語から)。
- redis および memcached。スレッドセーフで、公式クライアントよりも使いやすく高性能です。
- rtmp/flv/hls。ストリーミングサービスの構築用。
- hadoop_rpc(オープンソース化予定)
- rdma サポート
- thrift サポート。スレッドセーフで、公式クライアントよりも使いやすく高性能です。
- Baiduで使用されるあらゆる種類のプロトコル:baidu_std、streaming_rpc、hulu_pbrpc、sofa_pbrpc、nova_pbrpc、public_pbrpc、ubrpc、nsheadベースのもの。
- braftでオープンソース化されている産業グレードのRAFT合意アルゴリズムの実装を使用して、HA分散サービスを構築します。
- サーバーはリクエストを同期的または非同期に処理できます。
- クライアントはサーバーに同期的、非同期的、半同期的にアクセスしたり、コンボチャンネルを使用してシャーディングや並列アクセスを宣言的に簡素化したりできます。
- http経由でサービスをデバッグし、CPU、ヒープ、競合プロファイラを実行します。
- より良いレイテンシとスループットを実現します。
- 組織で使用されているプロトコルを素早くbRPCに拡張したり、ネーミングサービス(dns、zk、etcd)、ロードバランサー(rr、ランダム、コンシステントハッシュ)などのコンポーネントをカスタマイズします。
試してみよう!
- 概要を読んで、bRPCがどこで使えるか、その利点を理解してください。
- はじめにを読んでビルド手順を確認し、サンプルを試してください。
- ドキュメント:
- パフォーマンスベンチマーク
- bvar
- bthread
- クライアント
- サーバー
- 組み込みサービス
- ツール
- その他
- IOBuf
- ストリーミングログ
- FlatMap
- コルーチン
- サーキットブレーカー
- RDMA
- Bazelサポート
- Wireshark baidu_std dissectorプラグイン
- bRPC紹介(トレーニング資料)
- 大規模サービス構築チュートリアル(トレーニング資料)
- bRPC内部(トレーニング資料)
- RPCの深堀り
- ユースケース
コードへの貢献
こちらを参照してください。
フィードバックと参加方法
- バグ報告、質問、提案はGitHub Issuesまで
- メーリングリスト([email protected])に登録してプロジェクトの最新情報を入手
行動規範
Apache Software Foundationの行動規範に従います。詳細はこちらを参照してください。