Protocol Buffers(协议缓冲)是谷歌的数据交互格式.
Protocal Buffers(简称protobuf), 是出自谷歌跨语言, 跨平台, 可扩展的机制, 用于将结构化数据序列化. 你也可以查看官方文档.
本文包含protobuf安装说明, 为了安装protobuf, 你需要安装协议编译器, 用于编译.proto文件, 并且选择对应编程语言的protobuf运行时.
协议编译器是用C++写的, 如果你使用的语言是C++, 请参考C++ Installation Instructions来安装protoc和C++运行时.
对于非C++用户, 最简单的方法是下载我们发布的预编译二进制包, 下载地址: https://github.com/protocolbuffers/protobuf/releases
对于每个发布版本, 你可以找到对应的预编译二进制ZIP包, 格式为:protoc-版本-$平台.zip. 它包含了protoc二进制文件以及一组随protobuf一起发布的标准.proto文件.
如果你需要更早的版本, 请从下面的maven仓库检出: https://repo1.maven.org/maven2/com/google/protobuf/protoc/
预编译的版本值包含发布版本, 如果你想使用最新的主干master版本, 或你想要修改protobuf源码, 或你使用C++, 建议从源码构建protoc二进制包.
如果你想从源码编译构建protoc二进制包, 请参考C++ Installation Instructions.
Protobuf支持多种不同编程语言, 参考下面的表格, 选择使用的语言, 对应的源码目录有使用手册和protobuf运行时安装指南.
Language | Source | Ubuntu | MacOS | Windows |
---|---|---|---|---|
C++ (include C++ runtime and protoc) | src | |||
Java | java | |||
Python | python | |||
Objective-C | objectivec | |||
C# | csharp | |||
JavaScript | js | |||
Ruby | ruby | |||
Go | protocolbuffers/protobuf-go | |||
PHP | php | |||
Dart | dart-lang/protobuf |
学习怎样使用protobuf最好的方法, 就是跟着我们的开发者指南动手实操:
https://developers.google.com/protocol-buffers/docs/tutorials
如果你想从示例代码中学习, 你可以参考本项目的 examples 目录.
关于Protocol Buffers完整的文档, 请参考Goolge开发者protocal-buffers网站:https://developers.google.com/protocol-buffers/