Protocol buffers
Protocol Buffers是一种轻便、高效的数据交换格式,由Google开发和开源。它基于二进制序列化,可以被用于数据存储、通讯协议、数据通信等多个领域。
Protocol Buffers的优点在于其极小的体积和高效的解析速度。与XML、JSON等文本标记语言相比,Protocol Buffers是二进制格式的,其序列化后的数据体积小,传输速度快。此外,Protocol Buffers有严格的格式规范,使得其解析速度非常高效。
使用Protocol Buffers时,首先需要定义好需要传输的数据的格式,即Proto文件。使用Proto文件定义数据格式后,就可以使用提供的代码生成工具生成对应语言的数据访问类,在应用中便可以使用这些类进行数据编解码。
总体来说,Protocol Buffers是一种非常高效的数据交换格式,尤其适用于数据传输量较大、网络带宽较小或数据响应速度要求较高的领域。
一、官网文档地址
二、安装
- 下载protocol buffer的编译器
https://github.com/protocolbuffers/protobuf#protocol-compiler-installation - 这里我选择下载的是windows 64版本
- 下载完成后,进行解压,然后配置系统path的环境变量,比如我这里的是D:\Soft\protoc\bin
- 如果语言使用的是golang,那么还需要下载对应go语言的代码生成工具
The protocol buffer compiler requires a plugin to generate Go code. Install it using Go 1.16 or higher by running:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
三、什么是protoc
protoc是protobuf文件(.proto)的编译器,可以借助这个工具把 .proto 文件转译成各种编程语言对应的源码,包含数据类型定义、调用接口等。
四、什么是protoc-gen-go
protoc-gen-go是protobuf编译插件系列中的Go版本
五、protoc的编译流程
- 解析.proto文件,转译成protobuf的原生数据结构在内存中保存;
- 把protobuf相关的数据结构传递给相应语言的编译插件,由插件负责根据接收到的protobuf原生结构渲染输出特定语言的模板。
六、简单使用
- 创建一个user.proto文件
syntax="proto3";//protocol buffer 版本号,这里使用3,还有2的版本
package tutorial; //编译后生成的包名
option go_package="./tutorial";//生成包的路径
//定义一个消息
message user {
string name=1;
int32 age=2;
}
- 在终端输入以下命令
#--go_out 输出路径
protoc --go_out=./ ./user.proto
-
下图是官方文档给出的示例
-
生成的文件是一个user.pb.go文件
本文来自博客园,作者:弩哥++,转载请注明原文链接:https://www.cnblogs.com/bangbangzoutianya/p/17371861.html