Protocol Buffers的入门加实践

来源:互联网 发布:java string类排序 编辑:程序博客网 时间:2024/06/06 19:49

目录

  • 1.介绍
  • 2.下载与安装
  • 3.实例说明(Python代码)
  • 4.实例说明(Objective-C代码)
  • 5.文件.proto的解释


1.介绍

Protocol Buffer,简单来说,就是一种数据交换格式,就像JSONXML作用一样,只不过Protocol Buffer是Google开源的一套二进制流网络传输协议,它独立于语言,独立于平台;而且它的性能、速度等非常优越于JSONXML。google 提供了多种语言的实现:objective-c, swift,java、c#、c++、Go 和Python等,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

对于XML来说,Protocol Buffers有太多优点了,尤其是针对序列化结构数据。优点:
- 更简单
- 小到3-10倍
- 快到20-100倍
- 相当少的歧义
- 文档型协议
- T-L-V的数据存储方式 Tag-Length-Value

注意

protobuf目前有两个版本proto2proto3。这两个版本的语法并不是完全兼容的,所以为了避免使用时的麻烦,请仔细阅读proto2和proto3的语法。


2.下载与安装

我的环境:macOS Sierra Version 10.12.6
- 1.下载最新版本的ProtoBuff (我下载的是v3.4.1)。下载完后,解压压缩包。注意:解压后里面的objectivec目录是给iOSmacOS专用
- 2.然后依次键入以下命令进行安装,以下的每个命令都可能或占用几分钟时间,请耐心等待下

$> cd protobuf-3.4.1/$> ./configure$> make$> make check$> make install// 当输入此步骤时,如果正常输出版本号信息,就表示安装正确了$> protoc --version


Python的使用命令

Python教程
编译一个.proto文件,命令如下:

//$SRC_DIR 为源文件目录//$DST_DIR 为目标文件目录protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/addressbook.proto

然后,你就会看到后缀为:_pb2.py的文件在你指定的目录下。


Objective-C的使用命令

Objective-C教程
编译一个.proto文件,命令如下:

//$SRC_DIR 为源文件目录//$DST_DIR 为目标文件目录protoc --proto_path=$SRC_DIR --objc_out=$DST_DIR $SRC_DIR/addressbook.proto

然后,你就会看到后缀为:.pbobjc.h.pbobjc.m的文件在你指定的目录下。





以下将展示Objective-C和python的案例,以及解释,请点击这里

Reference:
完整Protobuffer的使用