在服务端的开发过程中,我们经常需要完成 复杂数据结构 <--> 二进制数据 之间的序列化、反序列化操作。
与易于阅读的Json相比,Google Protocol Buffers是一个不错的选择。然而,其速度依然比较慢。去年,Google又开源了推出了一款序列化利器:Google FlatBuffers。本文将简介其用法,
1、为什么要用Google FlatBuffers
我就不用复杂的文字描述了,一份官方Benchmark数据就足以说明问题:
在服务端的开发过程中,我们经常需要完成 复杂数据结构 <--> 二进制数据 之间的序列化、反序列化操作。
与易于阅读的Json相比,Google Protocol Buffers是一个不错的选择。然而,其速度依然比较慢。去年,Google又开源了推出了一款序列化利器:Google FlatBuffers。本文将简介其用法,
1、为什么要用Google FlatBuffers
我就不用复杂的文字描述了,一份官方Benchmark数据就足以说明问题:
今天下午将Thrift定义的格式生成Java,折腾了3个小时,在依赖包齐全的前提下,死活出一堆编译错误。
最后开始翻代码,终于发现了原因:index是Java接口内部保留字,请不要用它做任何函数名、结构体、变量名……[......]
对与版本更新频繁的项目一直都没有好感。比如Cassandra,比如Thrift,天天更新的能靠谱么……
Anyway,用什么不是我能决定的了,还是老老实实编译Thrift吧……
需求就是,至少(也只需要)支持C++和Python
Thrift的依赖写着boost,不加with-boost就不给编译with-cpp唉……
#configure
./configure --with-cpp --with-python --with-boost --without-csharp --w[......]
Thrift是一个开源的RPC框架,由知名SNS社区FaceBook贡献。下面记录了在Ubuntu 10.04下编译安装Thrift的全过程。
1、编译安装依赖
安装Java(除非你不想RPC使用Java)
[shell]
add-apt-repository "deb http://archive.canonical.com/ lucid partner"
apt-get update
apt-get install sun-java6-jdk sun-ja[......]