google protobuf
用谷歌自己的话说:“google protobuf是谷歌用于序列化结构化数据的语言无关、平台无关、可扩展的机制——想想XML,但更小、更快、更简单。”
您可以使用它作为一种二进制交换格式通过网络发送数据,与支持协议缓冲区的第三方应用程序通信,甚至创建轻量级但可扩展的文件格式。
google protobuf是:
灵活且可扩展:您可以更新数据结构(或协议),而不会破坏使用“旧”格式的已部署程序。
紧凑:序列化格式紧凑,非常适合通过(无线)网络传输。输出比XML或JSON格式的相应数据小3到10倍。
快速解析和生成:二进制格式可以非常快速地生成和解析。根据谷歌的说法,它的解析速度比XML快20到100倍。
当然,还有其他二进制序列化格式,每种格式都有自己的优缺点。例如,在之前的文章中,我们展示了我们的JSON和BSON库,它可以(在其他事情中)将JSON转换为BSON(二进制JSON),反之亦然。BSON很适合以快速解析的格式表示JSON数据,但它的设计不是紧凑的。同样,像JSON和XML这样的格式也适合表示非结构化数据。google protobuf要求您的数据是结构化的(尽管它足够灵活,可以在未来更新结构)。