Protocol Buffers

Buf 사용하여 Protobuf 빌드하기

DevelopC 2023. 7. 17. 14:06
728x90

Buf 사용하여 Protobuf 빌드하기

Protobuf(Protocol Buffers)는 구조화된 데이터 직렬화를 위한 Google의 개방형 프로토콜입니다. Protobuf를 사용하여 프로토콜 버퍼 파일(.proto)을 컴파일하려면 protoc라는 컴파일러를 사용해야 합니다. 

 

Buf는 Protobuf 파일을 빌드하고 유지 관리하기 위한 도구입니다. Buf는 protoc보다 좀 더 진보된 기능을 제공하며, 코드 생성, 문법 검증, Linting, 의존성 관리 등을 지원합니다.  protoc를 대신하여 Buf를 사용하면 protoc 파일을 컴파일 하기위한 스크립트를 yaml로 관리할 수 있고, language별로 빌드하는 경우에도 protoc를 사용하는 것보다 쉽게 관리할 수 있습니다.

 

Buf 설치

$ brew install bufbuild/buf/buf

yaml 파일 생성

buf.gen.yaml 파일 생성

아래의 예제는 buf managed mode를 사용하였습니다. buf.gen.yaml에서 정의하여 여러 language로 빌드할 수 있습니다.

version: v1
managed:
  enabled: true
  optimize_for: SPEED

  go_package_prefix:
    default: github.com/test/proto/gen/proto/go
    
  java_multiple_files: false
  java_package_prefix: com
  java_string_check_utf8: false

plugins:
  - plugin: buf.build/protocolbuffers/go:v1.31.0
    out: gen/proto/go
    opt: paths=source_relative
  - plugin: buf.build/protocolbuffers/java:v23.4
    out: gen/proto/java
    opt: paths=source_relative

buf.work.yaml 생성

protoc 파일이 있는 디렉토리를 선언해주세요.

version: v1
directories:
  - proto

build

$ buf generate

참고

 

Buf

Accelerate API development with Buf, the only end-to-end developer platform for Protocol Buffers and gRPC.

buf.build

 

728x90