Repolode
sogou

sogou/srpc

Sogou의 Workflow 엔진을 기반으로 SRPC, bRPC, Thrift, tRPC 프로토콜을 지원하는 Linux, macOS, Windows용 C++ RPC 프레임워크입니다.

스타
2,142
포크
410
열린 이슈
34
마지막 커밋
14일 전

어떤 프로젝트인가요?

SRPC는 Sogou의 Workflow 라이브러리 위에 구현된 C++ RPC 프레임워크입니다. SRPC, bRPC, Thrift, tRPC 등 여러 와이어 프로토콜을 지원하고, Protobuf 또는 Thrift IDL 정의를 받아 클라이언트와 서버 스텁을 생성합니다.

기본 호출 기능뿐 아니라 JSON, Protobuf, Thrift 바이너리 데이터 형식, gzip, zlib, snappy, lz4 압축, tcp, udp, sctp, TLS 전송을 지원합니다. HTTP+JSON 액세스를 통해 어떤 언어를 사용하는 클라이언트든 일반 HTTP로 서비스에 호출할 수 있습니다. 요청을 Workflow의 series 및 parallel 프리미티브와 결합할 수 있으며, OpenTelemetry로 트레이싱을 보고하고 OpenTelemetry 또는 Prometheus로 메트릭을 보고하는 AOP 모듈도 포함합니다.

핵심 기능

  • 01SRPC, bRPC, Thrift, tRPC 프로토콜을 지원합니다.
  • 02Protobuf 및 Thrift IDL을 받아 스텁을 생성합니다.
  • 03HTTP+JSON을 제공해 어떤 언어에서든 서비스를 호출할 수 있습니다.
  • 04gzip, zlib, snappy, lz4로 페이로드를 압축합니다.
  • 05OpenTelemetry로 트레이싱을, Prometheus로 메트릭을 보고합니다.

활용 사례

  • C++로 처리량이 높은 내부 마이크로서비스를 구축합니다.
  • bRPC 또는 tRPC 서비스와 Workflow 기반 코드베이스가 상호 운용되도록 합니다.
  • 다른 언어를 사용하는 클라이언트를 위해 RPC 서비스를 HTTP+JSON으로 노출합니다.
  • C++ 서비스에 OpenTelemetry 트레이싱과 Prometheus 메트릭을 추가합니다.

빠른 시작

  1. 1

    설치 가이드에 따라 srpc를 소스에서 빌드하거나 시스템 패키지로 설치합니다

  2. 2

    example.proto에서 C++ 코드를 생성합니다

    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은(는) 무엇인가요?
Sogou의 Workflow 엔진을 기반으로 SRPC, bRPC, Thrift, tRPC 프로토콜을 지원하는 Linux, macOS, Windows용 C++ RPC 프레임워크입니다. SRPC는 Sogou의 Workflow 라이브러리 위에 구현된 C++ RPC 프레임워크입니다. SRPC, bRPC, Thrift, tRPC 등 여러 와이어 프로토콜을 지원하고, Protobuf 또는 Thrift IDL 정의를 받아 클라이언트와 서버 스텁을 생성합니다.
srpc은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
srpc은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
srpc은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. srpc의 마지막 커밋은 2026년 10월 24일입니다.
srpc은(는) 어디에 사용할 수 있나요?
C++로 처리량이 높은 내부 마이크로서비스를 구축합니다. bRPC 또는 tRPC 서비스와 Workflow 기반 코드베이스가 상호 운용되도록 합니다. 다른 언어를 사용하는 클라이언트를 위해 RPC 서비스를 HTTP+JSON으로 노출합니다. C++ 서비스에 OpenTelemetry 트레이싱과 Prometheus 메트릭을 추가합니다.
srpc는 어떻게 설치하나요?
설치 가이드에 따라 srpc를 소스에서 빌드하거나 시스템 패키지로 설치합니다 example.proto에서 C++ 코드를 생성합니다: 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를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트

하나의 .skir 파일에서 TypeScript, Python, Java, Go, C++ 등 다양한 언어용 타입 안전 데이터 모델과 RPC 코드를 생성하는 선언형 스키마 언어입니다.

317+1 이번 주10TypeScriptMIT활발히 관리됨업데이트 10일 전