使用 buf 替代 protoc 自动生成 protobuf go 代码快速开始

简介

buf 可以做 protoc 的替代品

  1. buf 效率比 protoc 更好
  2. buf 使用 yaml 文件,使用更清晰

NOTE:

  1. 目前不支持 Windows,下面为 linux 演示
  2. 官方文档:https://docs.buf.build/
  3. 演示完整代码:https://github.com/dengjiawen8955/buf_demo

快速开始

1. 安装

官方提供 3 种安装方式

  1. bin
  2. tar package
  3. go/bin

这里演示第一种( 其他参考官方文档:https://docs.buf.build/)

运行命令行(Linux)

BIN="/usr/local/bin" && \
VERSION="0.43.2" && \
BINARY_NAME="buf" && \
  curl -sSL \
    "https://github.com/bufbuild/buf/releases/download/v${VERSION}/${BINARY_NAME}-$(uname -s)-$(uname -m)" \
    -o "${BIN}/${BINARY_NAME}" && \
  chmod +x "${BIN}/${BINARY_NAME}"

检查是否安装成功

[root@c03 buf_demo]# buf --version
0.43.2

2. protobuf 文件准备

建议下载 demo 完整代码

git clone git@github.com:dengjiawen8955/buf_demo.git
# 
cd buf_demo

在这里插入图片描述

创建一个新文件 echo.proto

syntax = "proto3";
package gateway_5;
option go_package = "gateway_5/";

message StringMessage {
  string value = 1;
}

service YourService {
  rpc Echo(StringMessage) returns (StringMessage) {}
}

2. buf.gen.yaml 文件准备

创建一个新文件 buf.gen.yaml


3. 生成代码

cd demo
#generate code
buf generate

查看效果

[root@c03 buf_demo]# cd demo/
[root@c03 demo]# buf generate
[root@c03 demo]# ls
buf.gen.yaml  echo_grpc.pb.go  echo.pb.go  echo.proto
[root@c03 demo]# 

完整示例代码https://github.com/dengjiawen8955/buf_demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JarvanStack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值