Um framework Go para sistemas distribuídos, com RPC, descoberta de serviços, mensageria, armazenamento e configuração, além de agentes, ferramentas e workflows.
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
Instale o srpc a partir do código-fonte ou como pacote do sistema, seguindo o guia de instalação
- 2
Gere código C++ a partir de example.proto
protoc example.proto --cpp_out=./ --proto_path=./ - 3
Compile o servidor (Linux)
g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc - 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
Framework de computação paralela e redes assíncronas em C++11, usado nos serviços de back-end da Sogou para criar workflows de tarefas baseados em DAG.
Formato e toolchain da Google, independente de linguagem e plataforma, para serializar dados estruturados, com o compilador protoc e runtimes para várias linguagens.
Uma linguagem declarativa de schemas que gera modelos de dados type-safe e código RPC para TypeScript, Python, Java, Go, C++ e outras linguagens a partir de um único arquivo .skir.
Framework leve em Go para criar microsserviços cloud-native, com transports HTTP e gRPC unificados, middleware e geração de código baseada em Protobuf.
Implementação Java do Apache Dubbo, um framework de RPC e microsserviços para comunicação, descoberta e gerenciamento de tráfego entre serviços.