Un framework de Go para sistemas distribuidos que incluye RPC, descubrimiento de servicios, mensajería, almacenamiento y configuración, además de agentes, herramientas y workflows.
sogou/srpc
Framework RPC para C++ basado en el motor Workflow de Sogou, compatible con los protocolos SRPC, bRPC, Thrift y tRPC en Linux, macOS y Windows.
- Estrellas
- 2,142
- Forks
- 410
- Issues abiertos
- 34
- Último commit
- hace 13 días
¿Qué es?
SRPC es un framework RPC escrito en C++ sobre la biblioteca Workflow de Sogou. Admite varios protocolos de transferencia (SRPC, bRPC, Thrift y tRPC) y acepta definiciones IDL de Protobuf o Thrift, a partir de las cuales genera código para los stubs de cliente y servidor.
Además de las llamadas básicas, admite los formatos de datos JSON, Protobuf y binario de Thrift; compresión con gzip, zlib, snappy y lz4; y transportes tcp, udp, sctp y TLS. El acceso HTTP+JSON permite que clientes en cualquier lenguaje llamen a un servicio mediante HTTP sin cifrar. Las solicitudes se pueden combinar con las primitivas de series y paralelismo de Workflow. El framework también incluye módulos AOP que envían trazas a OpenTelemetry y métricas a OpenTelemetry o Prometheus.
Funciones clave
- 01Admite los protocolos SRPC, bRPC, Thrift y tRPC.
- 02Acepta IDL de Protobuf y Thrift y genera stubs.
- 03Ofrece HTTP+JSON para que clientes en cualquier lenguaje puedan llamar a los servicios.
- 04Comprime las cargas útiles con gzip, zlib, snappy o lz4.
- 05Envía trazas a OpenTelemetry y métricas a Prometheus.
Casos de uso
- Crear microservicios internos de alto rendimiento en C++.
- Permitir que servicios bRPC o tRPC interoperan con una base de código basada en Workflow.
- Exponer un servicio RPC mediante HTTP+JSON para clientes en otros lenguajes.
- Añadir trazas de OpenTelemetry y métricas de Prometheus a servicios en C++.
Inicio rápido
- 1
Instala srpc desde el código fuente o como paquete del sistema siguiendo la guía de instalación
- 2
Genera código C++ a partir de example.proto
protoc example.proto --cpp_out=./ --proto_path=./ - 3
Compila el servidor (Linux)
g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc - 4
Inicia el servidor y ejecuta el cliente en otra terminal
./server
Antes de usarlo
- Los comandos de compilación de la guía de inicio rápido solo cubren Linux; en otros sistemas se necesita la configuración de cmake indicada en el tutorial.
- El README no incluye ningún comando de instalación mediante un gestor de paquetes, así que debes compilar desde el código fuente o usar un paquete del sistema.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es srpc?
- Framework RPC para C++ basado en el motor Workflow de Sogou, compatible con los protocolos SRPC, bRPC, Thrift y tRPC en Linux, macOS y Windows. SRPC es un framework RPC escrito en C++ sobre la biblioteca Workflow de Sogou. Admite varios protocolos de transferencia (SRPC, bRPC, Thrift y tRPC) y acepta definiciones IDL de Protobuf o Thrift, a partir de las cuales genera código para los stubs de cliente y servidor.
- ¿srpc es gratuito? ¿Qué licencia tiene?
- srpc es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿srpc sigue mantenido?
- Mantenimiento activo. El último commit de srpc fue el 24 oct 2026.
- ¿Para qué puedo usar srpc?
- Crear microservicios internos de alto rendimiento en C++. Permitir que servicios bRPC o tRPC interoperan con una base de código basada en Workflow. Exponer un servicio RPC mediante HTTP+JSON para clientes en otros lenguajes. Añadir trazas de OpenTelemetry y métricas de Prometheus a servicios en C++.
- ¿Cómo se instala srpc?
- Instala srpc desde el código fuente o como paquete del sistema siguiendo la guía de instalación Genera código C++ a partir de example.proto: protoc example.proto --cpp_out=./ --proto_path=./ Compila el servidor (Linux): g++ -o server server.cc example.pb.cc -std=c++11 -lsrpc Inicia el servidor y ejecuta el cliente en otra terminal: ./server
- ¿Dónde consigo srpc?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/sogou/srpc
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Framework de computación paralela y redes asíncronas en C++11, usado en los servicios de back-end de Sogou para crear flujos de tareas basados en DAG.
Formato y toolchain de Google, independientes del lenguaje y la plataforma, para serializar datos estructurados, con el compilador protoc y runtimes para muchos lenguajes.
Lenguaje declarativo de esquemas que genera modelos de datos seguros en tipos y código RPC para TypeScript, Python, Java, Go, C++ y otros lenguajes a partir de un único archivo .skir.
Un framework ligero de Go para crear microservicios nativos de la nube con transportes HTTP y gRPC unificados, middleware y generación de código basada en Protobuf.
Implementación en Java de Apache Dubbo, un framework de RPC y microservicios para crear comunicación, descubrimiento y gestión del tráfico entre servicios.