Protobuf(Protocol Buffers)是一种语言无关、平台无关的数据序列化格式,由Google开发。它旨在提供一种高效、简单和自动化的方式来序列化结构化数据,常用于网络通信、数据存储和消息传递等领域。
Protobuf使用.proto文件定义数据结构,然后通过编译器生成对应的代码,这些代码可以用于不同编程语言中的消息读写操作。相比于XML和JSON等文本格式,Protobuf采用二进制编码,因此数据体积更小、解析速度更快。
Protobuf具有以下特点:
- 高效性:采用二进制编码,数据存储和传输效率高。
- 可扩展性:支持向已定义的消息中添加新字段,保持向前和向后兼容。
- 跨平台性:生成的代码可用于多种编程语言,提供了方便的接口访问。
- 简单性:定义数据结构的.proto文件比较简单明了,易于阅读和维护。
总的来说,Protobuf提供了一种快速、灵活和可靠的数据交换方式,被广泛应用于分布式系统、大规模数据处理和通信协议等领域。 ----GPT
安装
https://github.com/protocolbuffers/protobuf/releases/tag/v24.0-rc3
选择合适的版本
解压后找到 ./bin/protoc.exe 将路径添加到环境变量中
终端运行 protoc --version
安装完成!
基础使用
1.设计数据结构(proto+python)
创建后缀名为.proto的文件
2.转换对应语言文件(python为例)
终端执行protoc查看所有命令
执行下面代码
protoc --python_out=output_directory input.proto
//其中 output_directory 是你希望生成代码的目录,input.proto 是你的 Protocol Buffers 文件
转换完成后的.py文件不要修改,在对proto修改后再次执行--python_out会自动同步到.py中
3.python操作序列化数据
安装对应的库
pip install protobuf
这样就完成了