Protocol Buffer(缩写Protobuf)
是Google开发的一种跨语言、跨平台、可扩展的机制,用于序列化结构化数据。类似于XML,但是更小、更快和更简单。它是Google内部主要的数据交互格式。
介绍
发展历史
- 名称来自代码的类名
ProtocolBuffer
proto1
:2001年出在Google内部开发和使用
proto2
:2008年开源,独立后不依赖任何Google内部代码
proto3
:(当前主流版本)2016年开源,整合了很多的意见和建议,提高开发效率。但不兼容之前版本
特点
- 支持多种语言,如 C++、Java、Python、Objective-C、C#、Ruby、Go、PHP、Dart
- 性能高
什么是序列化
序列化
是指将 数据结构
或 对象状态
转换成可取用(存储或网络传输)格式,以留待后续在相同或另一台计算机环境中,能恢复原先状态的过程
反序列化
是其逆操作的过程
常见的序列化格式包括:yaml、json、xml、protobuf等。
使用
以 proto3 为例(参考官方go示例)Protobuf 使用时,一般的步骤: