mac上 Kratos 配置 protoc

前言

protocprotobuf 文件(.proto)的编译器,可以借助这个工具把 .proto 文件转译成各种编程语言对应的源码,包含数据类型定义、调用接口等。

protoc 在设计上把 protobuf 和不同的语言解耦了,底层用 c++ 来实现 protobuf 结构的存储,然后通过插件的形式来生成不同语言的源码。

可以把 protoc 的编译过程分成简单的两个步骤:

1)解析 .proto 文件,转译成 protobuf 的原生数据结构在内存中保存;

2)把 protobuf 相关的数据结构传递给相应语言的编译插件,由插件负责根据接收到的 protobuf 原生结构渲染输出特定语言的模板。

protoc-gen-goprotobuf 编译插件系列中的Go版本。

设置开启GO111MODULE、配置代理

复制代码
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn/

安装 kratos

复制代码
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest

kratos upgrade

go mod tidy # 更新依赖库

安装 protobuf 相关库

复制代码
# 安装 proto
go get -u github.com/golang/protobuf/proto

# kratos升级到最新版
sudo kratos upgrade

# 安装 protoc-gen-go-grpc
go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

# 安装 protoc-gen-go-http
go get -u github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2
go install github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2

# 安装 protoc-gen-go
go get -u github.com/golang/protobuf/protoc-gen-go@latest
go install github.com/golang/protobuf/protoc-gen-go@latest

# 安装 protoc-gen-go-errors
go get -u github.com/go-kratos/kratos/cmd/protoc-gen-go-errors/v2
go install github.com/go-kratos/kratos/cmd/protoc-gen-go-errors/v2

# 安装 protoc-gen-openapiv2
go get -u github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2

# 安装 protoc-gen-validate
go get -u github.com/envoyproxy/protoc-gen-validate
go install github.com/envoyproxy/protoc-gen-validate

生成所有proto源码、wire等等,下面命令二选一

复制代码
go generate ./...      

go run generate.go ./..

运行项目

复制代码
kratos run
posted @   牛奔  阅读(318)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2021-08-30 golang实现三重DES加密解密
2020-08-30 laradock 安装扩展程序 pcntl
2019-08-30 解决input,number类型的maxlength无效
2019-08-30 php保留两位小数
2019-08-30 input设置为disabled,表单无法提交后台解决方法
点击右上角即可分享
微信分享提示