当前位置: 首页 > news >正文

protobuf中数据格式与类型

消息格式
消息由至少一个字段组合而成,类似于C语言中的结构体,每个字段都有一定的格式:
数据类型 字段名称 = 唯一的编号标签值;

字段名称:protobuf建议以下划线命名而非驼峰式
唯一的编号标签:代表每个字段的一个唯一的编号标签,在同一个消息里不可以重复。这些编号标签用与在消息二进制格式中标识你的字段,并且消息一旦定义就不能更改。需要说明的是标签在1到15范围的采用一个字节进行编码,所以通常将标签1到15用于频繁发生的消息字段。编号标签大小的范围是1到229。此外不能使用protobuf系统预留的编号标签(19000 ~19999)。

数据类型
.proto类型 C++类型 备注
double double 64位浮点数
float float 32位浮点数
int32 int32 32位整数
int64 int64 64位整数
uint32 uint32 32位无符号整数
uint64 uint64 64位无符号整数
sint32 int32 32位整数,处理负数效率比int32更高
sint32 sint64 64位整数,处理负数效率比int64更高
fixed32 uint32 总是4个字节。如果数值总是比总是比228大的话,这个类型会比uint32高效。
fixed64 uint64 总是8个字节。如果数值总是比总是比256大的话,这个类型会比uint64高效。
sfixed32 int32 总是4个字节
sfixed64 int64 总是8个字节
bool bool 布尔类型
string string 一个字符串必须是UTF-8编码或者7-bit ASCII编码的文本
bytes string 处理多字节的语言字符、如中文
enum enum 枚举
message object of class 自定义的消息类型

相关文章:

  • potobuf生成文件
  • GO get下载困难问题
  • c语言二叉树
  • 丹华资本与区块链
  • hyperledger生成证书命令
  • crypto-config.yaml
  • 纯净版crypto-config.yaml文件
  • hyperledger生成peer和order
  • golang实现web服务器
  • ActiveMQ消息队列
  • export对环境变量进行设置
  • hyperledger中基本网络搭建示例
  • hyperledger中docker-compose文件示例
  • hyperledger多节点交易
  • 微服务架构
  • 【刷算法】求1+2+3+...+n
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • ES6 ...操作符
  • Java 网络编程(2):UDP 的使用
  • Javascript设计模式学习之Observer(观察者)模式
  • Joomla 2.x, 3.x useful code cheatsheet
  • Laravel 菜鸟晋级之路
  • mysql 数据库四种事务隔离级别
  • nginx 配置多 域名 + 多 https
  • php的插入排序,通过双层for循环
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • vue-cli3搭建项目
  • vue脚手架vue-cli
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 普通函数和构造函数的区别
  • 用 Swift 编写面向协议的视图
  • 鱼骨图 - 如何绘制?
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • # 安徽锐锋科技IDMS系统简介
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #git 撤消对文件的更改
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (转)ObjectiveC 深浅拷贝学习
  • (转)可以带来幸福的一本书
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .net的socket示例
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @Valid和@NotNull字段校验使用
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • [2010-8-30]
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [Android] 修改设备访问权限
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [CakePHP] 在Controller中使用Helper