素材阁

Protocol Buffers 速查

共 24 条 Protocol Buffers 语法与工具,涵盖基础语法、类型与字段、嵌套与枚举、服务定义、编译与工具。 支持搜索与分类筛选,点击即可复制。

基础语法

proto3 是当前主流版本。

命令说明
声明版本(必须写在首行)
包名,避免命名冲突
定义消息与字段(编号唯一)
生成代码的包路径选项
注释

类型与字段

标量、重复与可选。

命令说明
常用标量类型
重复字段(列表)
显式可选(proto3 可判断是否设置)
映射表
保留字段编号与名称(防误用)

嵌套与枚举

组合类型。

命令说明
枚举(首个值必须为 0)
嵌套消息
oneof:同时只设置一个
导入其它 proto
使用内置类型

服务定义

供 gRPC 使用。

命令说明
定义 RPC 服务
服务端流式
客户端流式
双向流式

编译与工具

protoc 与 buf。

命令说明
生成 Go 代码
生成 Python 代码
生成 Java 代码
buf:更现代的编译与 lint 工作流
按风格规范检查 proto

使用说明

Protocol Buffers 速查:基础语法、类型与字段、嵌套与枚举、服务定义、编译与工具;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:基础语法、类型与字段、嵌套与枚举、服务定义、编译与工具。
  2. 点「命令」列复制到 .proto 或命令行。
  3. 字段编号一旦使用就不要改动或复用,改字段用 reserved 保留。
  4. 生成代码前先确定各语言的包路径选项(如 go_package)。

常见问题

字段编号能随便填吗?
编号决定二进制兼容性,发布后不可改或复用;删除字段应把编号加入 reserved,防止将来被误用。
protoc 和 buf 选哪个?
protoc 是官方编译器、最基础;buf 在其上提供 lint、依赖管理与统一生成流程,团队协作更省心。
需要联网吗?
速查内容本地可用;安装编译器与生成插件需联网。

延伸阅读

相关工具