ProtoBuf 简单介绍

2017-07-20  本文已影响108人  低智商游戏

关于Protobuf

Protocol Buffer是google 的一种数据交换的格式,已经在Github开源,目前最新版本是3.1.0。它独立于语言,独立于平台。google 提供了多种语言的实现:Java、C#、C++、GoPython,Objective-C,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 XML 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

Protobuf优点

1,性能好,效率高 性能测试
2,代码生成机制,数据解析类自动生成,只要编写好proto文件,通过简单的命令,就可以生成多种语言的数据模型文件。
3,支持向后兼容和向前兼容
4,支持多种编程语言(java,c++,python)

Protobuf缺点

1, 应用不够广
2, 二进制格式导致可读性差, 如果没有.proto文件无法将数据解析出来

Mac下源代码下载以及工具编译

1 下载源代码。

git clone https://github.com/google/protobuf.git

2 安装autoconf, libtool和automake工具。在终端下一次执行以下命令

brew install autoconf
brew install libtool
brew install automake

3 进入objectivec/DevTools 目录 ,执行如下命令:

sudo sh full_mac_build.sh

执行完成之后会生成src/protoc可执行文件,使用这个可执行文件可以将.proto原型文件转化成objectc数据模型文件

不想费事自己编译的话,也可以直接执行如下命令安装

brew install –devel protobuf 

Protobuf语言指南

官方文档
中文翻译

java
c++
数据编码

--objc_out 在目标目录DST_DIR中产生Object C代码,

Model *model = [[Model alloc] init];
model.name = "";
......
NSData *data = [model data];
// save data to file or transfer it
Model *model = [[Model alloc] initWithData:data error:&error];
// model can be used          
上一篇下一篇

猜你喜欢

热点阅读