谷歌 Protocol Buffers 数据交换格式:安装、使用及支持政策全揭秘 概述Protocol Buffers简称 protobuf是谷歌开发的一种与语言和平台无关、具备可扩展性的结构化数据序列化机制。可在 protobuf 的文档中了解更多相关信息。此 README 文件包含 protobuf 的安装说明。要安装 protobuf需安装协议编译器用于编译 .proto 文件以及所选编程语言的 protobuf 运行时环境。使用 Protobuf 源代码对大多数用户来说使用受支持的发行版本最简单。若选择主分支的最新版本构建过程可能因源代码不兼容的更改以及测试不充分从而导致出错的行为而偶尔失败。若使用 C或需在项目中从源代码构建 protobuf应固定到发布分支上的某个发布提交版本因为即使是发布分支在不同的发布提交之间也可能存在一定的不稳定性。使用 Bzlmod 的 BazelProtobuf 支持在 Bazel 8 及以上版本中使用 Bzlmod。用户应在他们的 MODULE.bazel 文件中按如下方式指定对 protobuf 的依赖bazel_dep(name protobuf, version )用户可以选择覆盖仓库名称例如为了与 WORKSPACE 兼容bazel_dep(name protobuf, version , repo_name com_google_protobuf)使用 WORKSPACE 的 Bazel用户也可在他们的旧版 WORKSPACE 文件中添加以下内容。需注意从 30.x 版本发布后为正确设置 rules_java 和 rules_python需要多添加一些加载语句http_archive(name com_google_protobuf,strip_prefix protobuf-,sha256 ...,url ...,)load(com_google_protobuf//:protobuf_deps.bzl, protobuf_deps)protobuf_deps()load(rules_java//java:rules_java_deps.bzl, rules_java_dependencies)rules_java_dependencies()load(rules_java//java:repositories.bzl, rules_java_toolchains)rules_java_toolchains()load(rules_python//python:repositories.bzl, py_repositories)py_repositories()Protobuf 编译器安装Protobuf 编译器是用 C 编写的。若使用 C请按 C 安装说明来安装 protoc 以及 C 运行时环境。对于非 C 用户安装协议编译器最简单的方法是从 GitHub 发布页面下载预编译的二进制文件。在每个版本的下载部分可找到以 zip 包形式提供的预编译二进制文件protoc - $VERSION - $PLATFORM.zip。它包含 protoc 二进制文件以及随 protobuf 一起分发的一组标准 .proto 文件。若寻找发布页面上没有的旧版本可查看 Maven 仓库。这些预编译的二进制文件仅针对已发布的版本提供。若想使用 GitHub 主分支的最新版本或需修改 protobuf 代码又或者使用的是 C建议从源代码自行构建 protoc 二进制文件。若想从源代码构建 protoc 二进制文件请参阅 C 安装说明。Protobuf 运行时安装Protobuf 支持多种不同的编程语言。对于每种编程语言可在相应的源代码目录中找到关于如何安装该特定语言的 protobuf 运行时环境的说明| 语言 | 源代码目录 || ---- | ---- || C包含 C 运行时和 protoc | src || Java | java || Python | python || Objective - C | objectivec || C# | csharp || Ruby | ruby || Go | protocolbuffers/protobuf - go || PHP | php || Dart | dart - lang/protobuf || JavaScript | protocolbuffers/protobuf - javascript |快速开始学习如何使用 protobuf 的最佳方式是遵循开发者指南中的教程。若想通过代码示例学习可查看 examples 目录中的示例。文档完整的文档可在 Protocol Buffers 文档网站上获取。支持政策阅读版本支持政策以了解语言库的支持时间范围。开发者社区若要及时了解 Protocol Buffers 的即将到来的更改并与 protobuf 开发者和用户建立联系请加入谷歌群组。