Protocol Buffers 速查
共 24 条 Protocol Buffers 语法与工具,涵盖基础语法、类型与字段、嵌套与枚举、服务定义、编译与工具。 支持搜索与分类筛选,点击即可复制。
基础语法
proto3 是当前主流版本。
| 命令 | 说明 |
|---|---|
| 声明版本(必须写在首行) | |
| 包名,避免命名冲突 | |
| 定义消息与字段(编号唯一) | |
| 生成代码的包路径选项 | |
| 注释 |
类型与字段
标量、重复与可选。
| 命令 | 说明 |
|---|---|
| 常用标量类型 | |
| 重复字段(列表) | |
| 显式可选(proto3 可判断是否设置) | |
| 映射表 | |
| 保留字段编号与名称(防误用) |
嵌套与枚举
组合类型。
| 命令 | 说明 |
|---|---|
| 枚举(首个值必须为 0) | |
| 嵌套消息 | |
| oneof:同时只设置一个 | |
| 导入其它 proto | |
| 使用内置类型 |
服务定义
供 gRPC 使用。
| 命令 | 说明 |
|---|---|
| 定义 RPC 服务 | |
| 服务端流式 | |
| 客户端流式 | |
| 双向流式 |
编译与工具
protoc 与 buf。
| 命令 | 说明 |
|---|---|
| 生成 Go 代码 | |
| 生成 Python 代码 | |
| 生成 Java 代码 | |
| buf:更现代的编译与 lint 工作流 | |
| 按风格规范检查 proto |
使用说明
Protocol Buffers 速查:基础语法、类型与字段、嵌套与枚举、服务定义、编译与工具;支持搜索与分类筛选,点击即可复制。
- 按用途点分类:基础语法、类型与字段、嵌套与枚举、服务定义、编译与工具。
- 点「命令」列复制到 .proto 或命令行。
- 字段编号一旦使用就不要改动或复用,改字段用 reserved 保留。
- 生成代码前先确定各语言的包路径选项(如 go_package)。
常见问题
- 字段编号能随便填吗?
- 编号决定二进制兼容性,发布后不可改或复用;删除字段应把编号加入 reserved,防止将来被误用。
- protoc 和 buf 选哪个?
- protoc 是官方编译器、最基础;buf 在其上提供 lint、依赖管理与统一生成流程,团队协作更省心。
- 需要联网吗?
- 速查内容本地可用;安装编译器与生成插件需联网。