Protobuf Schema Registry
Goal
Provide details on the Buf Schema Registry (BSR) dependencies and how to consume generated code.
Instructions
- •
BSR Code Generation Flow:
- •Push:
buf pushuploads schemas to BSR. - •Remote Generation: BSR generates code using plugins in
buf.gen.yaml. - •Plugins:
protocolbuffers/go,connectrpc/go,bufbuild/es,bufbuild/connect-es,bufbuild/validate-go. - •Consumer Access: Generated code via Go modules and npm packages.
- •Push:
- •
Registry URLs:
- •Entity Schema:
buf.build/liverty-music/entity - •RPC Schema:
buf.build/liverty-music/rpc
- •Entity Schema:
- •
Package Constants:
- •Entities:
liverty_music.entity.v1 - •RPCs:
liverty_music.rpc.v1
- •Entities:
- •
Consumption (Go):
bashgo get buf.build/gen/go/liverty-music/entity/protocolbuffers/go go get buf.build/gen/go/liverty-music/entity/bufbuild/validate-go go get buf.build/gen/go/liverty-music/rpc/protocolbuffers/go go get buf.build/gen/go/liverty-music/rpc/connectrpc/go go get buf.build/gen/go/liverty-music/rpc/bufbuild/validate-go
- •
Consumption (TypeScript):
bashnpm install @buf/liverty-music_entity.bufbuild_es npm install @buf/liverty-music_rpc.bufbuild_es npm install @buf/liverty-music_rpc.bufbuild_connect-es
Constraints
- •Do NOT rely on local generation for downstream consumers.
- •Always use the
liverty-musicorganization in BSR.
Example
Adding a dependency in Go:
go
import (
entityv1 "buf.build/gen/go/liverty-music/entity/protocolbuffers/go/liverty_music/entity/v1"
)