proto-buf
Protobuf with Buf (Project Standard)
We standardize protobuf contract management with Buf.
Files
buf.yaml: module + lint/breaking rulesbuf.gen.yaml: code generation targetsproto/: all.protosources
Typical workflow
Lint
buf lintBreaking change check
(Requires a reference point, typically the main branch or last release tag)
buf breaking --against '.git#branch=main'Generate
buf generateNotes for Haskell (grpc-haskell + proto-lens)
Buf orchestrates protoc invocations, but Haskell codegen still needs a protoc plugin.
Two common approaches:
- Local plugin: install
proto-lens-protocand configure buf to call it. - Remote plugin: if/when a stable remote plugin is available.
We will add Haskell generation into core/src-gen/ and include that directory in package.yaml once the toolchain is pinned.