Protobuf
定义
Protobuf是一套类似XML或者Json的数据传输格式和规范。它的作用是在不同的应用或者进程之间通信时作为传输数据。因此通信时传递的信息是需要严格按照Protobuf定义的message的数据结构进行打包,然后在编译成二进制的byte流进行传输或者存储。
优点
- 结构化,使用起来相对简单
- 轻量化,序列化后体积小,相比于XML只有它的1/10 ~ 1/3
- 高效化,解析速度快,相比于XML要快20~100倍
- 高兼容,支持多种语言的同时并且很好的支持向上和向下兼容
安装和使用
安装
- 通过Git安装
- 通过python安装
# 安装protobuf库
pip install protobuf
# 安装protobuf编译器
sudo apt-get install protobuf-compiler
使用
- 定义消息
- 初始化消息以及存储传输消息
- 读取消息并解析
定义消息
Protobuf的消息结构是通过一种叫做Protocol Buffer Language的语言进行定义的。实际上这个语言一共有两个版本,版本2和版本3。默认情况下使用版本2,我们举个简单的例子。假设我们的文件目录格式如下
├── my
│ ├── helloworld_pb2.py
│ ├── helloworld_pb2.pyc
│ └── __init__.py
├── mybuffer.io
├── my.helloworld.proto
├── reader.py
└── writer.py