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