
New releaseSep 18, 2026
brpc v1.18.0
Промышленный C++ RPC-фреймворк для создания высокопроизводительных распределённых систем, поддерживающий несколько протоколов (HTTP, gRPC, Redis, Thrift) со встроенной балансировкой нагрузки, службами имён и консенсусом RAFT.

bRPC — это промышленный RPC-фреймворк на языке C++, который часто используется в высокопроизводительных системах, таких как поиск, хранение данных, машинное обучение, реклама, рекомендации и т.д.
«bRPC» означает «better RPC» (лучший RPC).
Вы можете использовать его для:
- Создания сервера, который может общаться по множеству протоколов (на одном порту), или для доступа к различным сервисам
- restful http/https, h2/gRPC. Использование http/h2 в bRPC гораздо удобнее, чем libcurl. Доступ к протоколам на основе protobuf через HTTP/h2+json, возможно, из другого языка.
- redis и memcached, потокобезопасные, более удобные и производительные, чем официальные клиенты.
- rtmp/flv/hls, для создания стриминговых сервисов.
- hadoop_rpc (может быть открыт)
- поддержка rdma
- поддержка thrift, потокобезопасная, более удобная и производительная, чем официальные клиенты.
- всевозможные протоколы, используемые в Baidu: baidu_std, streaming_rpc, hulu_pbrpc, sofa_pbrpc, nova_pbrpc, public_pbrpc, ubrpc и протоколы на основе nshead.
- Создание HA распределённых сервисов с использованием промышленной реализации алгоритма консенсуса RAFT, которая открыта в braft
- Серверы могут обрабатывать запросы синхронно или асинхронно.
- Клиенты могут обращаться к серверам синхронно, асинхронно, полусинхронно или использовать комбинированные каналы для декларативного упрощения шардированных или параллельных обращений.
- Отладки сервисов через http и запуска профилировщиков cpu, heap и contention.
- Получения лучшей задержки и пропускной способности.
- Расширения bRPC с помощью протоколов, используемых в вашей организации, или настройки компонентов, включая службы имён (dns, zk, etcd), балансировщики нагрузки (rr, random, consistent hashing)
Попробуйте!
- Прочтите обзор, чтобы узнать, где можно использовать bRPC и каковы его преимущества.
- Прочтите начало работы для получения шагов по сборке и поиграйте с примерами.
- Документация:
- Сравнение производительности
- bvar
- bthread
- Клиент
- Сервер
- Встроенные сервисы
- Инструменты
- Прочее
- IOBuf
- Потоковое логирование
- FlatMap
- Корутины
- Предохранитель
- RDMA
- Поддержка Bazel
- Плагин Wireshark для dissector baidu_std
- Введение в bRPC (учебный материал)
- Руководство по созданию крупномасштабных сервисов (учебный материал)
- Внутреннее устройство bRPC (учебный материал)
- RPC в деталях
- Примеры использования
Внести вклад в код
Пожалуйста, обратитесь сюда.
Обратная связь и участие
- Сообщайте об ошибках, задавайте вопросы или вносите предложения через Github Issues
- Подпишитесь на список рассылки ([email protected]), чтобы быть в курсе проекта
Кодекс поведения
Мы следуем кодексу поведения Apache Software Foundation, пожалуйста, ознакомьтесь с ним по ссылке