Repolode
sogou

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

    Установите srpc из исходного кода или как системный пакет, следуя руководству по установке

  2. 2

    Сгенерируйте код C++ из example.proto

    protoc example.proto --cpp_out=./ --proto_path=./
  3. 3

    Скомпилируйте сервер (Linux)

    g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc
  4. 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 обновляется ежедневно.

Похожие проекты

Независимый от языка и платформы формат и набор инструментов Google для сериализации структурированных данных: компилятор protoc и среды выполнения для множества языков.

72,2 тыс.+12 за неделю16,4 тыс.C++OtherОбновлён 10 часов назад

Декларативный язык схем, который генерирует типобезопасные модели данных и RPC-код для TypeScript, Python, Java, Go, C++ и других языков из одного файла .skir.

317+1 за неделю10TypeScriptMITАктивно поддерживаетсяОбновлён 10 дней назад

Java-реализация Apache Dubbo — RPC- и микросервисного фреймворка для связи между сервисами, обнаружения сервисов и управления трафиком.

41,6 тыс.26,3 тыс.JavaApache-2.0Активно поддерживаетсяОбновлён 4 дня назад