windows go grpc

windows环境安装go grpc 的工具和插件

在Windows环境下,安装Protocol Buffers(proto)和gRPC相关的工具和插件,可以通过以下几个步骤进行

1.安装protoc 
在git 仓库下载tag 包
https://github.com/protocolbuffers/protobuf/releases
或者直接安装v25.4版本,链接:https://github.com/protocolbuffers/protobuf/releases/tag/v25.4
再或者在goland IDE plugins 安装插件
解压后,将下载到本地的protoc.exe ,复制到GOPATH 下 bin 目录

2.gRPC的Go插件包括protoc-gen-go和protoc-gen-go-grpc,用于将.proto文件编译成Go语言的源代码文件
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest  
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
这些命令会将相应的可执行文件安装到你的GOPATH 的bin目录中
如果执行失败,需要配置GOPROXY=goproxy.io,https://goproxy.cn,https://mirrors.aliyun.com/goproxy/,direct

测试

运行 protoc --version来验证protoc编译器是否安装成功。
运行protoc-gen-go --version和protoc-gen-go-grpc --version来验证Go插件是否安装成功
生成go 文件:
protoc --go_out=. --go-grpc_out=. your_proto_file.proto

proto 文件顶部

syntax = "proto3";

package google.protobuf;

option cc_enable_arenas = true;
option go_package = "google.golang.org/protobuf/types/known/wrapperspb";
option java_package = "com.google.protobuf";
option java_outer_classname = "WrappersProto";
option java_multiple_files = true;
option objc_class_prefix = "GPB";
option csharp_namespace = "Google.Protobuf.WellKnownTypes";

syntax = "proto3";:这指定了使用Proto3语法。Proto3是Protocol Buffers的第三版语法,相较于之前的版本(Proto2),它提供了一些改进和简化,比如移除了对可选字段的支持,增加了对Map类型的支持等。
package google.protobuf;:这定义了proto文件的包名。在生成的代码中,这将影响类、枚举等的命名空间或包路径。在这个例子中,它指定了生成的代码应该位于google.protobuf这个包下。
option cc_enable_arenas = true;:这是一个针对C++的选项,用于启用内存池(arenas)以优化内存分配。在C++中,这可以减少内存分配的开销,提高性能。
option go_package = "google.golang.org/protobuf/types/known/wrapperspb";:这是针对Go语言的选项,指定了生成的Go代码应该使用的包路径。在这个例子中,它告诉Go编译器生成的代码应该放在google.golang.org/protobuf/types/known/wrapperspb这个包下。
option java_package = "com.google.protobuf";:这是针对Java的选项,指定了生成的Java代码应该放在哪个包下。在这个例子中,生成的Java类将位于com.google.protobuf包下。
option java_outer_classname = "WrappersProto";:这也是针对Java的选项,指定了生成的Java外部类的名称。当.proto文件包含多个消息或枚举时,这些元素会被放在一个外部类中。在这个例子中,外部类的名称被指定为WrappersProto。
option java_multiple_files = true;:这同样是针对Java的选项,指定是否应该为每个消息、枚举等生成单独的Java文件。在这个例子中,它被设置为true,意味着每个消息或枚举都将被生成到它自己的Java文件中。
option objc_class_prefix = "GPB";:这是针对Objective-C的选项,指定了生成的Objective-C类名中应该使用的前缀。在这个例子中,所有生成的Objective-C类名都将以GPB为前缀。
option csharp_namespace = "Google.Protobuf.WellKnownTypes";:这是针对C#的选项,指定了生成的C#代码应该使用的命名空间。在这个例子中,生成的C#类将位于Google.Protobuf.WellKnownTypes命名空间下。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值