Protocol Buffer学习笔记
什么是Protocal Buffer
Protocol Buffer
和XML
、JSON
一样都是结构数据序列化
的工具,
Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。
怎么安装Protocal Buffer
- 安装 protobuf:
apt-get install libprotobuf-dev
- 安装 protobuf 的 python 模块:
pip3 install protobuf==3.13.0
为什么使用Protocal Buffer
- 因为它能非常方便的进行序列化和反序列化
- 支持多平台、多语言、可扩展的的数据序列化机制,相较于XML来说,protobuf更小更快更简单
- 支持自定义的数据结构,用protobu编译器生成特定语言的源代码
怎么使用Protocal Buffer
-
Protocol Buffer
定义数据格式的文件一般保存在.proto
文件中,每一个message
代表了一类结构化的数据,message
里面定义了每一个属性的类型和名字
。 -
通过
Protolcal Buffer
编译器即可编译.proto
文件
# 在终端输入下列命令进行编译
protoc -I=$SRC_DIR --xxx_out=$DST_DIR $SRC_DIR/addressbook.proto
# 参数说明
# 1. $SRC_DIR:指定需要编译的.proto文件目录 (如没有提供则使用当前目录)
# 2. --xxx_out:xxx根据需要生成代码的类型进行设置
"""
对于 Java ,xxx = java ,即 -- java_out
对于 C++ ,xxx = cpp ,即 --cpp_out
对于 Python,xxx = python,即 --python_out
"""
# 3. $DST_DIR :编译后代码生成的目录 (通常设置与$SRC_DIR相同)
# 4. 最后的路径参数:需要编译的.proto 文件的具体路径
# 编译通过后,Protoco Buffer会根据不同平台生成对应的代码文件
小技巧:
- 因为每次输入的指令相同,为了避免重复性劳动,可以将指令直接放在
txt
文件中,然后改后缀喂.cmd
。- 如图所示
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9A4IeBr7-1662697715383)(C:\Users\meiying\AppData\Roaming\Typora\typora-user-images\image-20220909113314588.png)]