后一修订版 | 前一修订版 |
public:it:protobuff [2020/10/19 15:03] – 创建 oakfire | public:it:protobuff [2021/10/18 14:01] (当前版本) – [Tips] oakfire |
---|
* [[https://developers.google.com/protocol-buffers/docs/cpptutorial|official tutorial]] | * [[https://developers.google.com/protocol-buffers/docs/cpptutorial|official tutorial]] |
* 三步: | * 三步: |
- 定义 ''<name>.proto'' 文件,语法见''https://developers.google.com/protocol-buffers/docs/proto3|Protocol Buffer Language Guide'' | - 定义 ''<name>.proto'' 文件,语法见[[https://developers.google.com/protocol-buffers/docs/proto3|Protocol Buffer Language Guide]] |
| - 使用编译工具 ''protoc'' 来编译 ''.proto''文件来生成对应语言的代码文件 |
| - 接口使用,消息成员变量操作接口''<key>''、''has_<key>''、''set_<key>''、''clear_<key>''等, 可查看[[https://developers.google.com/protocol-buffers/docs/reference/cpp-generated|cpp-generated]]; 以及消息整体的操作''IsInitialized()''、''DebugString()''、''CopyFrom''、''Clear()''等, 可查看 [[https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message|Message]]; 以及最重要的序列化与反序列化接口''SerializeToString''、''ParseFromString''等,同样可查看 [[https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message|Message]] |
| ==== Tips ==== |
| * 不定类型的可用 [[https://developers.google.com/protocol-buffers/docs/proto3#any|any]] |
| * 序列化的二进制格式详见[[https://developers.google.com/protocol-buffers/docs/encoding|encoding]] |
| * 对时间的处理[[https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.util.time_util|time_util]] |
| * proto3 增加了序列化为json格式的接口[[https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.util.json_util|json_util]] |
| |
| <WRAP center round tip 60%> |
| 以上链接大部分为c++链接, protobuf支持的其它语言比如Java,Go等,其接口链接要去官网对应的文档查看 |
| </WRAP> |
| |