Repolode
sogou

sogou/srpc

Framework RPC em C++ baseado no mecanismo Workflow da Sogou, compatível com os protocolos SRPC, bRPC, Thrift e tRPC em Linux, macOS e Windows.

Estrelas
2,142
Forks
410
Issues abertas
34
Último commit
há 13 dias

O que é?

O SRPC é um framework RPC escrito em C++ e baseado na biblioteca Workflow da Sogou. Ele oferece suporte a vários protocolos de comunicação (SRPC, bRPC, Thrift e tRPC) e aceita definições IDL de Protobuf ou Thrift, gerando código para os stubs de cliente e servidor.

Além das chamadas básicas, ele oferece suporte aos formatos de dados JSON, Protobuf e binário Thrift, à compressão gzip, zlib, snappy e lz4 e aos transportes tcp, udp, sctp e TLS. O acesso por HTTP+JSON permite que clientes em qualquer linguagem chamem um serviço por HTTP puro. As requisições podem ser combinadas com as primitivas de série e paralelismo do Workflow, e o framework inclui módulos AOP que enviam traces para OpenTelemetry e métricas para OpenTelemetry ou Prometheus.

Recursos principais

  • 01Oferece suporte aos protocolos SRPC, bRPC, Thrift e tRPC.
  • 02Aceita IDL de Protobuf e Thrift e gera os stubs correspondentes.
  • 03Oferece HTTP+JSON para que clientes em qualquer linguagem chamem os serviços.
  • 04Comprime payloads com gzip, zlib, snappy ou lz4.
  • 05Envia traces para OpenTelemetry e métricas para Prometheus.

Casos de uso

  • Desenvolver microsserviços internos de alto throughput em C++.
  • Permitir a interoperabilidade de serviços bRPC ou tRPC com uma base de código baseada em Workflow.
  • Disponibilizar um serviço RPC por HTTP+JSON para clientes em outras linguagens.
  • Adicionar tracing com OpenTelemetry e métricas com Prometheus a serviços em C++.

Início rápido

  1. 1

    Instale o srpc a partir do código-fonte ou como pacote do sistema, seguindo o guia de instalação

  2. 2

    Gere código C++ a partir de example.proto

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

    Compile o servidor (Linux)

    g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc
  4. 4

    Inicie o servidor e execute o cliente em outro terminal

    ./server

Antes de usar

  • Os comandos de compilação do guia de início rápido abrangem apenas Linux; em outros sistemas, é necessário configurar o cmake conforme o tutorial.
  • O README não fornece um comando de instalação por gerenciador de pacotes, então é necessário compilar a partir do código-fonte ou usar um pacote do sistema.

Em coleções

Tópicos

Perguntas frequentes

O que é srpc?
Framework RPC em C++ baseado no mecanismo Workflow da Sogou, compatível com os protocolos SRPC, bRPC, Thrift e tRPC em Linux, macOS e Windows. O SRPC é um framework RPC escrito em C++ e baseado na biblioteca Workflow da Sogou. Ele oferece suporte a vários protocolos de comunicação (SRPC, bRPC, Thrift e tRPC) e aceita definições IDL de Protobuf ou Thrift, gerando código para os stubs de cliente e servidor.
srpc é gratuito? Qual é a licença?
srpc é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
srpc ainda é mantido?
Manutenção ativa. O último commit de srpc foi em 24 de out. de 2026.
Para que posso usar srpc?
Desenvolver microsserviços internos de alto throughput em C++. Permitir a interoperabilidade de serviços bRPC ou tRPC com uma base de código baseada em Workflow. Disponibilizar um serviço RPC por HTTP+JSON para clientes em outras linguagens. Adicionar tracing com OpenTelemetry e métricas com Prometheus a serviços em C++.
Como instalar srpc?
Instale o srpc a partir do código-fonte ou como pacote do sistema, seguindo o guia de instalação Gere código C++ a partir de example.proto: protoc example.proto --cpp_out=./ --proto_path=./ Compile o servidor (Linux): g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc Inicie o servidor e execute o cliente em outro terminal: ./server
Onde consigo srpc?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/sogou/srpc

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados