Protocol Buffers介绍与安装指南
Protocol Buffers介绍与安装指南
技术背景
Protocol Buffers(简称protobuf)是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制。它允许你定义结构化的数据,然后使用生成的代码轻松地将结构化数据序列化和反序列化,适用于多种编程语言和平台,在数据交换和存储等场景中应用广泛。
实现步骤
安装前准备
要安装protobuf,需要安装协议编译器(用于编译 .proto
文件)和所选编程语言的protobuf运行时。
源码使用说明
- 使用发布版本:大多数用户从支持的发布版本开始使用是最简单的方式。
- 使用主分支头部版本:如果选择使用主分支的头部版本,构建可能会因源不兼容的更改和测试不充分的行为而偶尔失败。
- 从源码构建:如果使用C++或需要在项目中从源码构建protobuf,应固定到发布分支上的发布提交,因为即使是发布分支在发布提交之间也可能存在一些不稳定性。
不同构建工具配置
Bazel with Bzlmod
Protobuf支持Bazel 7+的Bzlmod。用户应在 MODULE.bazel
文件中指定对protobuf的依赖,如下所示:
1 |
|
用户还可以选择覆盖仓库名称,例如为了与 WORKSPACE
兼容:
1 |
|
Bazel with WORKSPACE
用户也可以在旧的 WORKSPACE
文件中添加以下内容:
1 |
|
协议编译器安装
- C++用户:协议编译器用C++编写。如果你使用C++,请按照C++安装说明安装
protoc
以及C++运行时。 - 非C++用户:最简单的安装协议编译器的方法是从GitHub发布页面下载预构建的二进制文件。在每个版本的下载部分,可以找到zip包中的预构建二进制文件:
protoc-$VERSION-$PLATFORM.zip
,它包含protoc
二进制文件以及与protobuf一起分发的一组标准.proto
文件。如果在发布页面找不到旧版本,可以查看Maven仓库。这些预构建的二进制文件仅适用于发布版本。如果你想使用GitHub主分支的最新版本,或者需要修改protobuf代码,或者使用C++,建议从源码构建自己的protoc
二进制文件。若要从源码构建protoc
二进制文件,请参阅C++安装说明。
运行时安装
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文档网站上找到。
- 关注支持政策:阅读版本支持政策,以了解语言库的支持时间范围。
- 加入社区:加入Google Group,以了解Protocol Buffers即将发生的变化,并与protobuf开发者和用户建立联系。
常见问题
- 构建失败:如果选择使用主分支的头部版本,构建可能会因源不兼容的更改和测试不充分的行为而失败。建议使用支持的发布版本。
- 找不到旧版本:如果在发布页面找不到旧版本的预构建二进制文件,可以查看Maven仓库。
- 源码构建:如果需要从源码构建,尤其是在使用C++时,要注意固定到发布分支上的发布提交,以避免不稳定性。
Protocol Buffers介绍与安装指南
https://119291.xyz/posts/protocol-buffers-introduction-and-installation-guide/