文章目录1. Protocol Buffers 简介2. v35.1 版本亮点3. 获取安装包4. 快速开始常用命令1. Protocol Buffers 简介Protocol Buffers简称 protobuf是 Google 于 2008 年正式开源的语言无关、平台无关、可扩展的结构化数据序列化机制。其内部版本 Proto1 自 2001 年即在 Google 内部大规模使用经历多年打磨后对外发布 Proto2 版本奠定了跨语言数据交换的基础。2016 年 Google 发布 Proto3进一步简化语法并提升跨语言一致性。如今protobuf 已成为微服务架构、RPC 通信和数据存储场景中最广泛使用的序列化格式之一与 gRPC 框架深度集成GitHub 上已获得超过 76k Stars。Protobuf 采用先定义结构、再使用数据的工作方式开发者在.proto文件中定义消息格式然后通过 protoc 编译器自动生成对应编程语言的数据访问代码。相比 JSON 和 XMLprotobuf 的二进制编码体积更小通常减少 70% 以上序列化/反序列化速度更快且具备强类型保障。其核心组件包括协议编译器protoc和各编程语言的运行时库。核心特点跨语言支持官方支持 C、Java、Python、Go、C#、JavaScript、Ruby、PHP、Dart、Objective-C 等十余种语言高效紧凑二进制编码体积比 JSON 小 60%-80%解析速度更快节省带宽和 CPU强类型与模式演化.proto文件定义数据结构支持向前/向后兼容的渐进式升级与 gRPC 深度集成可直接在.proto文件中定义 RPC 服务接口自动生成客户端/服务端代码完善的工具链配套代码生成、格式检查、lint 等工具开发体验成熟2. v35.1 版本亮点该版本汇集了5 位贡献者的10 条贡献。v35.1 是 35.x 系列的首个补丁版本主要修复和优化如下Bazel 构建系统扩展 Bazel 9 测试覆盖到 csharp、hpb、objc、php、python、rust 和 upb 语言后端确保多语言构建稳定性解除 protobuf 对 Bazel proto fragment 的依赖统一使用 Starlark 版本的--proto_toolchain_for*与 34.x 行为一致注意从 35.0 升级属于不兼容变更C为 repeated string 字段新增 cord setter提升大数据量字符串处理性能UPBPython/PHP/Ruby 的 C 扩展基础库修复 UPB 中的未定义行为通过切换到 XCT 段确保构造函数在编译器生成的初始化器之前执行提升运行时稳定性3. 获取安装包如果访问 GitHub 不便安装包及中文文档https://hanshuixin.org/go/224M内含 protoc-35.1-win64.zip、README 中英对照、发布说明中英对照和 LICENSE。Windows安装protobuf-v35.1protoc-35.1-win64.zip ├── protoc-35.1-win64.zip ├── Windows安装protobuf-v35.1protoc-35.1-win64.pdf ├── README/ │ ├── README.md │ └── README-中文版.md ├── 发布说明/ │ ├── RELEASE-NOTES.md │ └── RELEASE-NOTES-中文版.md └── LICENSE4. 快速开始将整合包根目录中的protoc-35.1-win64.zip解压到任意目录将其中的bin目录路径添加到系统环境变量PATH中即可在命令行中直接使用protoc命令。常用命令# 查看版本protoc--version# 查看帮助protoc--help# 编译 .proto 文件生成 C 代码protoc--proto_pathIMPORT_PATH--cpp_outDST_DIR path/to/file.proto# 编译 .proto 文件生成 Java 代码protoc--proto_pathIMPORT_PATH--java_outDST_DIR path/to/file.proto# 编译 .proto 文件生成 Python 代码protoc--proto_pathIMPORT_PATH--python_outDST_DIR path/to/file.proto
Windows下载、安装protobuf-v35.1(附安装包protoc-35.1-win64.zip)
文章目录1. Protocol Buffers 简介2. v35.1 版本亮点3. 获取安装包4. 快速开始常用命令1. Protocol Buffers 简介Protocol Buffers简称 protobuf是 Google 于 2008 年正式开源的语言无关、平台无关、可扩展的结构化数据序列化机制。其内部版本 Proto1 自 2001 年即在 Google 内部大规模使用经历多年打磨后对外发布 Proto2 版本奠定了跨语言数据交换的基础。2016 年 Google 发布 Proto3进一步简化语法并提升跨语言一致性。如今protobuf 已成为微服务架构、RPC 通信和数据存储场景中最广泛使用的序列化格式之一与 gRPC 框架深度集成GitHub 上已获得超过 76k Stars。Protobuf 采用先定义结构、再使用数据的工作方式开发者在.proto文件中定义消息格式然后通过 protoc 编译器自动生成对应编程语言的数据访问代码。相比 JSON 和 XMLprotobuf 的二进制编码体积更小通常减少 70% 以上序列化/反序列化速度更快且具备强类型保障。其核心组件包括协议编译器protoc和各编程语言的运行时库。核心特点跨语言支持官方支持 C、Java、Python、Go、C#、JavaScript、Ruby、PHP、Dart、Objective-C 等十余种语言高效紧凑二进制编码体积比 JSON 小 60%-80%解析速度更快节省带宽和 CPU强类型与模式演化.proto文件定义数据结构支持向前/向后兼容的渐进式升级与 gRPC 深度集成可直接在.proto文件中定义 RPC 服务接口自动生成客户端/服务端代码完善的工具链配套代码生成、格式检查、lint 等工具开发体验成熟2. v35.1 版本亮点该版本汇集了5 位贡献者的10 条贡献。v35.1 是 35.x 系列的首个补丁版本主要修复和优化如下Bazel 构建系统扩展 Bazel 9 测试覆盖到 csharp、hpb、objc、php、python、rust 和 upb 语言后端确保多语言构建稳定性解除 protobuf 对 Bazel proto fragment 的依赖统一使用 Starlark 版本的--proto_toolchain_for*与 34.x 行为一致注意从 35.0 升级属于不兼容变更C为 repeated string 字段新增 cord setter提升大数据量字符串处理性能UPBPython/PHP/Ruby 的 C 扩展基础库修复 UPB 中的未定义行为通过切换到 XCT 段确保构造函数在编译器生成的初始化器之前执行提升运行时稳定性3. 获取安装包如果访问 GitHub 不便安装包及中文文档https://hanshuixin.org/go/224M内含 protoc-35.1-win64.zip、README 中英对照、发布说明中英对照和 LICENSE。Windows安装protobuf-v35.1protoc-35.1-win64.zip ├── protoc-35.1-win64.zip ├── Windows安装protobuf-v35.1protoc-35.1-win64.pdf ├── README/ │ ├── README.md │ └── README-中文版.md ├── 发布说明/ │ ├── RELEASE-NOTES.md │ └── RELEASE-NOTES-中文版.md └── LICENSE4. 快速开始将整合包根目录中的protoc-35.1-win64.zip解压到任意目录将其中的bin目录路径添加到系统环境变量PATH中即可在命令行中直接使用protoc命令。常用命令# 查看版本protoc--version# 查看帮助protoc--help# 编译 .proto 文件生成 C 代码protoc--proto_pathIMPORT_PATH--cpp_outDST_DIR path/to/file.proto# 编译 .proto 文件生成 Java 代码protoc--proto_pathIMPORT_PATH--java_outDST_DIR path/to/file.proto# 编译 .proto 文件生成 Python 代码protoc--proto_pathIMPORT_PATH--python_outDST_DIR path/to/file.proto