【Protobuf速成指南】.proto文件的编写与编译
文章目录
- 1.0版本
- 一、编写.proto文件
- 1.文件规范:
- 2.注释方式:
- 3.指定proto3语法:
- 4.package申明符
- 5.定义message
- 6.编写消息字段
- ①类型对照表
- ②唯一编号
- 二、编译.proto文件
- 1. 编译指令
- 2.源码分析
- 三、序列化和反序列化的使用
- 四、小结
1.0版本
本系列文章将通过对通讯录项目的不断完善,带大家由浅入深的学习Protobuf的使用。这是Contacts的第一个版本,在这篇文章中将带大家快速上手Protobuf
一、编写.proto文件
1.文件规范:
- 创建.proto文件时,文件命名应该使用全小写字母命名,多个字母之间用 _ 连接。例如:
lower_snake_case.proto
。- 书写.proto文件代码时,应使用2个空格的缩进
2.注释方式:
使用 //
或者 /**/
进行注释
3.指定proto3语法:
在文件首行中指定该proto文件所采用的语法
syntax = "proto3";
【Protobuf速成指南】.proto文件的编写与编译相关推荐
- pip 安装protobuf_Python3.6安装protobuf模块+将proto文件转换成pb2.py文件
Python对版本的对应即为苛刻,笔者第一次安装时遇到了很多坑,比如无法将proto文件转换成py文件,转换了之后文件无法使用,网上各种各样的解决办法都没有讲到重点.其实会出现各种各样的问题是由于版本 ...
- 【Protobuf速成指南】oneof类型的使用
文章目录 2.3 oneof 类型 一.基本认识 二. 3.2 oneof相关函数 三.Contact2.3 改写 2.3 oneof 类型 本系列文章将通过对通讯录项目的不断完善,带大家由浅入深的 ...
- linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件
//所有模块都需要的头文件#include // init&exit 相关宏MODULE_LICENSE("GPL");static int __init hello_in ...
- 编译proto文件python_Python:如何将proto文件编译为python文件
说明: 最近刚刚开始接触接口的编写,用的是有关grpc远程调用.我还没太搞明白接口是怎么回事,但我的初步目标可以简单理解为生成两个python文件.比如你的proto文件名是ABC,那么我的目标是生成 ...
- Protobuf之proto文件编写规则
一. 简单介绍 protobuf文件:就是定义你要的消息(类似java中的类)和消息中的各个字段及其数据类型(类似java类中的成员变量和他的数据类型) 二. Protobuf消息定义 1.消息由至少 ...
- iOS 集成Protobuf,转换proto文件
原文地址:http://blog.csdn.net/hyq4412/article/details/54891038 附加Homebrew安装地址:https://brew.sh/index_zh-c ...
- Cocos Creator TypeScript 中使用ProtoBuf(利用工具把proto文件生成对应的js文件以及ts文件)
我是一枚刚入坑cocos的小白o(╯□╰)o 开发环境:Cocos Creator 1.9 (需要安装Node.js,使用npm命令) 在网上找了很久都是讲的protobuf.js的用法,但是没有 ...
- protobuf教程(一)---引入其他proto文件
本章主要介绍了如何在 proto 文件中引入其他 proto 文件. 1. 概述 Protocol buffers 是一种语言无关.平台无关的可扩展机制或者说是数据交换格式,用于序列化结构化数据.与 ...
- Protobuf 学习(二)编译proto文件并测试
Google 官网上的一个典型例子 (1)定义 proto 文件 // addressbook.protopackage tutorial; // package声明符message Person { ...
最新文章
- Flex前端与Java服务端交互,反射机制挑大旗
- Unhandled exception 0xC0000005: Access violation writing location
- VMware虚拟机上安装Linux系统
- 这位挪威博士是如何成为阿里云PolarDB资深架构师的?
- http报文格式_理解数据通信协议的报文格式有何用?
- 用友UI层获取机构的方法
- 如何在电脑上制作请假条表格_条码标签打印软件如何制作请假表
- 优化基于ExtJS 4.1的应用
- 关于android 双击事件
- web项目里看不到html,在webpack中导入html文件时找不到模块错误
- Vue.js总结 [2017.6.5]
- 树莓派和机器人有啥关系(也有jetson tx2的知识主要)
- Win7 SP1 安装python 3.8时,提示 KB2533623 update is required to continue
- isight2019安装教程_DS SIMULIA Suite 2019 (Abaqus/Isight/Fe-safe/Tosca) Win/Linux x64
- jpg格式的矢量化arcgis_ArcGIS实践教程(11)图形的批量矢量化
- 马上过年了,还在为没抢到回家的车票天天犯愁吗?这些好用的抢票神器赶紧用起来吧!...
- Splinter学习--模拟攥写博客园随笔
- 5.2 PMBOK--收集需求
- python123.io同一个号可以同时在不同设备登陆吗-Python 高级 3
- 关于ActionContext.getContext()的用法心得
热门文章
- c语言中的错误提示,C语言20条编程中遇到的错误提示.doc
- homestead安装php扩展,Homestead 安装 PHP Redis 扩展
- 水果文案营销怎么发朋友圈,水果店朋友圈的营销文案大全
- 河南省html5画布,HTML5之画布Canvas
- 前端用element-ui 完成分页
- Zynq7020 Linux CAN获取汽车上的数据以及注意事项
- livy使用样例_livy提交spark应用
- 【RS】在线更新RS:How to Retrain Recommendation System (SIGIR‘20)
- python中字节的介绍
- 什么是加密货币中的 FOMO?我们该如何应对 FOMO?