Buf

Buf

Buf CLI

配置

用于定义模块,它是主要的配置文件,负责模块的名称、依赖项以及 lintbreak 配置。

buf.yaml
version: v1
name: ""
deps: []
build:
  excludes: []
lint:
  use:
    - DEFAULT
  except: []
  ignore: []
  ignore_only: {}
  allow_comment_ignores: false
  enum_zero_value_suffix: _UNSPECIFIED
  rpc_allow_same_request_response: false
  rpc_allow_google_protobuf_empty_requests: false
  rpc_allow_google_protobuf_empty_responses: false
  service_suffix: Service
breaking:
  use:
    - FILE
  except: []
  ignore: []
  ignore_only: {}
  ignore_unstable_packages: false

Lock 包含模块的依赖项清单,并表示模块依赖项的单个可重复构建。

buf.lock
# Generated by buf. DO NOT EDIT.
version: v1
deps:
  - remote: buf.build
    owner: acme
    repository: paymentapis
    commit: 9a877cf260e1488d869a31fce3bea26d
    digest: shake256:4af5b88c9a1d9b36421ad84a2cff211fc74995040188dafc1c8508d36406140e40eb0ab82d21e761961e4a71631d4474e3d0608b987ca3d02d5d19012edff21d

用于定义一个本地插件模板,该模板直接与 buf generate 命令一起工作,从 Protobuf 文件生成代码存根。

buf.gen.yaml
version: v1
managed:
  enabled: true
  go_package_prefix:
    default: github.com/bufbuild/buf-tour/gen
plugins:
  - plugin: buf.build/protocolbuffers/go
    out: gen
    opt: paths=source_relative
  - plugin: buf.build/connectrpc/go
    out: gen
    opt: paths=source_relative

用于定义工作空间,这是一个高级的本地开发特性。工作区使得将一个或多个模块合并为单个可构建单元成为可能。它们还允许用户通过一次执行跨多个模块运行 buf 操作(例如 buf lint)。

buf.work.yaml
version: v1
directories:
  - paymentapis
  - petapis
最后更新于