하나의 .skir 파일에서 TypeScript, Python, Java, Go, C++ 등 다양한 언어용 타입 안전 데이터 모델과 RPC 코드를 생성하는 선언형 스키마 언어입니다.
protocolbuffers/protobuf
Google의 언어 및 플랫폼 독립적인 구조화 데이터 직렬화 형식과 도구 체인으로, protoc 컴파일러와 다양한 언어용 런타임을 제공합니다.
- 스타
- 72,151
- 포크
- 16,358
- 열린 이슈
- 371
- 마지막 커밋
- 24시간 전
어떤 프로젝트인가요?
Protocol Buffers(protobuf)는 프로그래밍 언어와 플랫폼에 관계없이 구조화 데이터를 직렬화하는 메커니즘입니다. 개발자는 .proto 파일에 데이터 구조를 정의하고, protoc 컴파일러는 대상 언어에서 해당 메시지를 읽고 쓰는 코드를 생성합니다.
이 저장소에는 C++로 작성된 프로토콜 컴파일러와 C++ 런타임, 프로젝트에 포함된 핵심 .proto 파일이 들어 있습니다. Java, Python, Objective-C, C#, Ruby, PHP 및 기타 언어용 런타임 라이브러리는 하위 디렉터리나 protobuf-go, protobuf-javascript 같은 연결된 형제 저장소에 있습니다. 릴리스에서는 C++ 외의 사용자를 위한 사전 빌드된 protoc 바이너리를 제공하며, Bazel, Bzlmod, WORKSPACE 설정 방법도 문서화되어 있습니다.
이 프로젝트는 RPC 시스템의 교환 형식으로 널리 사용되며, 구조화된 레코드를 저장할 때 텍스트 형식을 대신하는 간결한 형식으로도 쓰입니다.
핵심 기능
- 01언어에 종속되지 않는 .proto 파일로 메시지 스키마를 정의합니다.
- 02protoc가 여러 대상 언어용 직렬화 코드를 생성합니다.
- 03C++, Java, Python, Go, C#, Ruby 등 다양한 언어용 런타임을 제공합니다.
- 04사전 빌드된 protoc 바이너리를 GitHub 릴리스에서 배포합니다.
- 05Bazel, Bzlmod 및 레거시 WORKSPACE 빌드를 지원합니다.
활용 사례
- 서로 다른 언어로 작성된 서비스 간에 공유하는 데이터 계약을 정의합니다.
- gRPC 스타일 API의 RPC 요청 및 응답 메시지를 직렬화합니다.
- 텍스트 형식이 너무 크거나 파싱 속도가 느릴 때 간결한 구조화 레코드를 저장합니다.
빠른 시작
- 1
GitHub 릴리스 페이지에서 사전 빌드된 protoc 바이너리를 다운로드하세요
- 2
개발자 가이드의 시작하기 튜토리얼을 따라 진행하세요
사용 전 알아둘 점
- 메타데이터에 라이선스가 NOASSERTION으로 표시되어 있어 라이선스 조건이 불분명합니다.
- main 브랜치의 최신 커밋은 호환되지 않는 변경으로 인해 문제가 생길 수 있으므로, 안정적인 빌드를 위해 릴리스를 고정하세요.
- C++ 사용자와 코드를 수정해야 하는 사용자는 protoc를 소스에서 빌드해야 하므로 추가 작업이 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- protobuf은(는) 무엇인가요?
- Google의 언어 및 플랫폼 독립적인 구조화 데이터 직렬화 형식과 도구 체인으로, protoc 컴파일러와 다양한 언어용 런타임을 제공합니다. Protocol Buffers(protobuf)는 프로그래밍 언어와 플랫폼에 관계없이 구조화 데이터를 직렬화하는 메커니즘입니다. 개발자는 .proto 파일에 데이터 구조를 정의하고, protoc 컴파일러는 대상 언어에서 해당 메시지를 읽고 쓰는 코드를 생성합니다.
- protobuf은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- protobuf은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- protobuf은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. protobuf의 마지막 커밋은 2026년 11월 6일입니다.
- protobuf은(는) 어디에 사용할 수 있나요?
- 서로 다른 언어로 작성된 서비스 간에 공유하는 데이터 계약을 정의합니다. gRPC 스타일 API의 RPC 요청 및 응답 메시지를 직렬화합니다. 텍스트 형식이 너무 크거나 파싱 속도가 느릴 때 간결한 구조화 레코드를 저장합니다.
- protobuf는 어떻게 설치하나요?
- GitHub 릴리스 페이지에서 사전 빌드된 protoc 바이너리를 다운로드하세요 개발자 가이드의 시작하기 튜토리얼을 따라 진행하세요
- protobuf은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/protocolbuffers/protobuf
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
다양한 프로그래밍 언어에서 호환되는 클라이언트와 서버를 생성하는 코드 생성기를 갖춘 언어 독립적인 RPC 프레임워크입니다.
LLM 프롬프트에 구조화된 데이터를 전달할 때 토큰 사용량을 줄이도록 설계된, 간결하고 사람이 읽기 쉬운 JSON 인코딩 형식입니다.
순수 TypeScript 타입을 런타임 검증기, JSON 직렬화기, Protocol Buffer 코덱 및 랜덤 데이터 생성기로 컴파일하는 TypeScript transformer입니다.
Sogou의 Workflow 엔진을 기반으로 SRPC, bRPC, Thrift, tRPC 프로토콜을 지원하는 Linux, macOS, Windows용 C++ RPC 프레임워크입니다.
먼저 파싱하거나 언팩하지 않고 바이너리 데이터를 바로 읽을 수 있는 크로스 플랫폼 직렬화 라이브러리입니다.