通用技术-Protobuf
Contents
概述
Protocol Buffers 是一种独立于语言、独立于平台的可扩展机制,用于序列化结构化数据。
编程指南
语言指南(proto 3)
定义消息类型
|
|
指定字段类型:可以为字段指定复合类型,包括枚举 和其他消息类型
分配字段编号:每个字段都有一个唯一的编号。1 到 15 范围内的字段编号需要一个字节进行编码,包括字段编号和字段类型。16 到 2047 范围内的字段编号占用两个字节。
指定字段规则;
- singular:默认字段规则,除非它是默认值,否则它将被序列化。
- optional:可以检查该值是否已明确设置。该字段已设置,并包含一个明确设置或从线路解析的值,将被序列化;该字段未设置,并将返回默认值,它不会被序列化。
- repeated:此字段类型可以在格式正确的消息中重复零次或多次。重复值的顺序将被保留。
- map:这是成对的键/值字段类型。
注释与C/C++一致
|
|
保留字段:指定已删除字段的字段编号(和/或名称,这也可能导致 JSON 序列化问题)是reserved.
|
|
教程
go
定义协议格式
|
|
go_package选项定义包的导入路径
|
|
编译你的协议缓冲区
安装编译器
|
|
编译
|
|
protobuf与grpc的关系
gRPC 是 google 家公开的高性能 RPC 调用框架,号称高效,支持广(题外话,似乎度娘也开源了一款不错的 RPC 框架)
protobuf是服务它的一种序列化方法