文章目录

  • 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文件的编写与编译相关推荐

  1. pip 安装protobuf_Python3.6安装protobuf模块+将proto文件转换成pb2.py文件

    Python对版本的对应即为苛刻,笔者第一次安装时遇到了很多坑,比如无法将proto文件转换成py文件,转换了之后文件无法使用,网上各种各样的解决办法都没有讲到重点.其实会出现各种各样的问题是由于版本 ...

  2. 【Protobuf速成指南】oneof类型的使用

    文章目录 2.3 oneof 类型 一.基本认识 二. 3.2 oneof相关函数 三.Contact2.3 改写 2.3 oneof 类型  本系列文章将通过对通讯录项目的不断完善,带大家由浅入深的 ...

  3. linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件

    //所有模块都需要的头文件#include // init&exit 相关宏MODULE_LICENSE("GPL");static int __init hello_in ...

  4. 编译proto文件python_Python:如何将proto文件编译为python文件

    说明: 最近刚刚开始接触接口的编写,用的是有关grpc远程调用.我还没太搞明白接口是怎么回事,但我的初步目标可以简单理解为生成两个python文件.比如你的proto文件名是ABC,那么我的目标是生成 ...

  5. Protobuf之proto文件编写规则

    一. 简单介绍 protobuf文件:就是定义你要的消息(类似java中的类)和消息中的各个字段及其数据类型(类似java类中的成员变量和他的数据类型) 二. Protobuf消息定义 1.消息由至少 ...

  6. iOS 集成Protobuf,转换proto文件

    原文地址:http://blog.csdn.net/hyq4412/article/details/54891038 附加Homebrew安装地址:https://brew.sh/index_zh-c ...

  7. Cocos Creator TypeScript 中使用ProtoBuf(利用工具把proto文件生成对应的js文件以及ts文件)

    我是一枚刚入坑cocos的小白o(╯□╰)o 开发环境:Cocos Creator 1.9   (需要安装Node.js,使用npm命令) 在网上找了很久都是讲的protobuf.js的用法,但是没有 ...

  8. protobuf教程(一)---引入其他proto文件

    本章主要介绍了如何在 proto 文件中引入其他 proto 文件. 1. 概述 Protocol buffers 是一种语言无关.平台无关的可扩展机制或者说是数据交换格式,用于序列化结构化数据.与 ...

  9. Protobuf 学习(二)编译proto文件并测试

    Google 官网上的一个典型例子 (1)定义 proto 文件 // addressbook.protopackage tutorial; // package声明符message Person { ...

最新文章

  1. Flex前端与Java服务端交互,反射机制挑大旗
  2. Unhandled exception 0xC0000005: Access violation writing location
  3. VMware虚拟机上安装Linux系统
  4. 这位挪威博士是如何成为阿里云PolarDB资深架构师的?
  5. http报文格式_理解数据通信协议的报文格式有何用?
  6. 用友UI层获取机构的方法
  7. 如何在电脑上制作请假条表格_条码标签打印软件如何制作请假表
  8. 优化基于ExtJS 4.1的应用
  9. 关于android 双击事件
  10. web项目里看不到html,在webpack中导入html文件时找不到模块错误
  11. Vue.js总结 [2017.6.5]
  12. 树莓派和机器人有啥关系(也有jetson tx2的知识主要)
  13. Win7 SP1 安装python 3.8时,提示 KB2533623 update is required to continue
  14. isight2019安装教程_DS SIMULIA Suite 2019 (Abaqus/Isight/Fe-safe/Tosca) Win/Linux x64
  15. jpg格式的矢量化arcgis_ArcGIS实践教程(11)图形的批量矢量化
  16. 马上过年了,还在为没抢到回家的车票天天犯愁吗?这些好用的抢票神器赶紧用起来吧!...
  17. Splinter学习--模拟攥写博客园随笔
  18. 5.2 PMBOK--收集需求
  19. python123.io同一个号可以同时在不同设备登陆吗-Python 高级 3
  20. 关于ActionContext.getContext()的用法心得

热门文章

  1. c语言中的错误提示,C语言20条编程中遇到的错误提示.doc
  2. homestead安装php扩展,Homestead 安装 PHP Redis 扩展
  3. 水果文案营销怎么发朋友圈,水果店朋友圈的营销文案大全
  4. 河南省html5画布,HTML5之画布Canvas
  5. 前端用element-ui 完成分页
  6. Zynq7020 Linux CAN获取汽车上的数据以及注意事项
  7. livy使用样例_livy提交spark应用
  8. 【RS】在线更新RS:How to Retrain Recommendation System (SIGIR‘20)
  9. python中字节的介绍
  10. 什么是加密货币中的 FOMO?我们该如何应对 FOMO?