Фреймворк на Go для распределённых систем: RPC, обнаружение сервисов, обмен сообщениями, хранилище, конфигурация, агенты, инструменты и рабочие процессы.
sogou/srpc
C++-фреймворк для RPC на базе Workflow от Sogou с поддержкой протоколов SRPC, bRPC, Thrift и tRPC в Linux, macOS и Windows.
- Звёзды
- 2,142
- Форки
- 410
- Открытые issues
- 34
- Последний коммит
- 13 дней назад
Что это?
SRPC — фреймворк для RPC на C++, построенный на библиотеке Workflow от Sogou. Он поддерживает несколько протоколов передачи данных (SRPC, bRPC, Thrift и tRPC), принимает описания интерфейсов Protobuf или Thrift IDL и генерирует заглушки для клиента и сервера.
Помимо базовых вызовов, фреймворк поддерживает форматы данных JSON, Protobuf и бинарный Thrift, сжатие gzip, zlib, snappy и lz4, а также транспортные протоколы tcp, udp, sctp и TLS. Доступ по HTTP+JSON позволяет клиентам на любом языке вызывать сервис через обычный HTTP. Запросы можно объединять с помощью примитивов series и parallel из Workflow, а встроенные модули AOP отправляют трассировки в OpenTelemetry, а метрики — в OpenTelemetry или Prometheus.
Ключевые возможности
- 01Поддерживает протоколы SRPC, bRPC, Thrift и tRPC.
- 02Принимает Protobuf и Thrift IDL и генерирует заглушки.
- 03Предоставляет доступ по HTTP+JSON, чтобы сервисы могли вызывать клиенты на любом языке.
- 04Сжимает данные с помощью gzip, zlib, snappy или lz4.
- 05Отправляет трассировки в OpenTelemetry, а метрики — в Prometheus.
Сценарии использования
- Создание высокопроизводительных внутренних микросервисов на C++.
- Обеспечение взаимодействия сервисов на bRPC или tRPC с кодовой базой на Workflow.
- Предоставление доступа к RPC-сервису по HTTP+JSON для клиентов на других языках.
- Добавление трассировок OpenTelemetry и метрик Prometheus в сервисы на C++.
Быстрый старт
- 1
Установите srpc из исходного кода или как системный пакет, следуя руководству по установке
- 2
Сгенерируйте код C++ из example.proto
protoc example.proto --cpp_out=./ --proto_path=./ - 3
Скомпилируйте сервер (Linux)
g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc - 4
Запустите сервер, а клиент — в другом терминале
./server
Что важно знать
- Команды компиляции в кратком руководстве по началу работы предназначены только для Linux; для других систем нужна настройка cmake, описанная в учебном руководстве.
- В README нет команды для установки через менеджер пакетов, поэтому необходимо собрать srpc из исходного кода или использовать системный пакет.
В подборках
Темы
Частые вопросы
- Что такое srpc?
- C++-фреймворк для RPC на базе Workflow от Sogou с поддержкой протоколов SRPC, bRPC, Thrift и tRPC в Linux, macOS и Windows. SRPC — фреймворк для RPC на C++, построенный на библиотеке Workflow от Sogou. Он поддерживает несколько протоколов передачи данных (SRPC, bRPC, Thrift и tRPC), принимает описания интерфейсов Protobuf или Thrift IDL и генерирует заглушки для клиента и сервера.
- srpc можно использовать бесплатно? Какая у него лицензия?
- srpc распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- srpc всё ещё поддерживается?
- Активно поддерживается. Последний коммит в srpc — 24 окт. 2026 г..
- Для чего можно использовать srpc?
- Создание высокопроизводительных внутренних микросервисов на C++. Обеспечение взаимодействия сервисов на bRPC или tRPC с кодовой базой на Workflow. Предоставление доступа к RPC-сервису по HTTP+JSON для клиентов на других языках. Добавление трассировок OpenTelemetry и метрик Prometheus в сервисы на C++.
- Как установить srpc?
- Установите srpc из исходного кода или как системный пакет, следуя руководству по установке Сгенерируйте код C++ из example.proto: protoc example.proto --cpp_out=./ --proto_path=./ Скомпилируйте сервер (Linux): g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc Запустите сервер, а клиент — в другом терминале: ./server
- Где скачать srpc?
- Исходный код и инструкции по установке — на GitHub: https://github.com/sogou/srpc
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
C++11-фреймворк для параллельных вычислений и асинхронной работы с сетью, используемый в серверных сервисах Sogou для построения DAG-сценариев задач.
Независимый от языка и платформы формат и набор инструментов Google для сериализации структурированных данных: компилятор protoc и среды выполнения для множества языков.
Декларативный язык схем, который генерирует типобезопасные модели данных и RPC-код для TypeScript, Python, Java, Go, C++ и других языков из одного файла .skir.
Лёгкий Go-фреймворк для облачных микросервисов с единым транспортом HTTP и gRPC, middleware и генерацией кода на основе Protobuf.
Java-реализация Apache Dubbo — RPC- и микросервисного фреймворка для связи между сервисами, обнаружения сервисов и управления трафиком.