Golang下生成protocol buffers代码以及grpc代码的简单教程

Golang下生成protocol buffers代码以及grpc代码的简单教程,第1张

Golang下生成protocol buffers代码以及grpc的简单教程

本教程基于Goland IDE,Golang版本为1.17.4(建议使用1.16以上版本),生成了普通的pb和grpc代码

首先使用Goland创建一个新项目prototech

接着创建两个目录pb和proto,其中proto用来存放初始的.proto文件,pb存放生成的.pb.go源代码

在proto新建一个.proto文件test.proto


在test.proto中编辑以下文本

syntax = "proto3";  //protocol buffers的版本
package main;
option go_package = "/pb";   //输出的目标文件位置
message CPU{
  uint32 number_cores = 1;
  uint32 number_threads = 2;
  double max_hz_g = 3;
}

打开Terminal,安装protocol buffers的编译器,也可以直接下载最新的版本

//指定版本
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1

//最新版本
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

接着就可以开始编译.proto生成pg.go文件,由于我们的文件结构为:

prototech
-pb
-proto

当前的位置是/prototech,由于在test.proto中指定的go_package = “/pb”,我们可以直接将结果文件输出到pb目录下,通过修改go_package,你也可以自定义输出文件存放的位置

protoc --go-grpc_out=. proto/test.proto  

可以看到在pb目录下test.pb.go文件已经生成

如果要生成grpc.pb.go文件,修改一下命令行参数就行

protoc --go-grpc_out=. proto/test.proto

如果无法直接生成grpc.pb.go,可以尝试在test.proto中添加以下代码

syntax = "proto3";
package main;
option go_package = "/pb";
message CPU{
  uint32 number_cores = 1;
  uint32 number_threads = 2;
  double max_hz_g = 3;
}

service HelloService {
  rpc Hello (CPU) returns (CPU);
}

接着继续使用 protoc --go-grpc_out=. proto/test.proto,就能在pb目录下看到了

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/990140.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存