0
点赞
收藏
分享

微信扫一扫

buf 工具简单学习

buf实际上是一个围绕protocol buffers 的工具链,包含了不少东西,对于我们来说使用比较多的就是buf cli
以下主要说明下buf cli 的简单使用

buf 的能力

包含了lint,gen,workspace 管理,formater,deps 管理

简单使用

  • 初始化项目
    项目目的,创建一个简单的基于grpc 的service 定义,基于buf 进行模块以及依赖管理
    基本项目结构

 

├── README.md

├── buf.gen.yaml // 代码生成

├── buf.work.yaml // 工作空间

├── buf.yaml // 包定义,看设计添加,不是强需

├── go.mod

├── go.sum

└── protocs // proto 定义

├── externelapi

│   └── v1

│       └── externelapi.proto

└── userlogin

└── v1

└── userlogin.proto

  • buf.gen.yaml
    代码生成配置

 

version: "v1"

plugins:

 

- name: go

out: pkg // 输出路径

opt: paths=source_relative // 相对路径,比较方便外部集成

- name: go-grpc

out: pkg

opt:

- paths=source_relative

- require_unimplemented_servers=false

  • buf.yaml 核心是lint ,包定义需要的

version: v1

breaking:

use:

- FILE

lint:

use:

- DEFAULT

  • buf.work.yaml 定义workspace 配置

version: "v1"

directories:

- protocs

  • proto 定义
    没什么特殊的,就是定义,可以参考实际调整

命令使用

一般需要使用到的命令包含了lint,build,generate ,都比较简单,lint 比较有用,完整代码参考github

参考资料

​​https://docs.buf.build/introduction​​​
​​​https://github.com/rongfengliang/buf-learning​​

举报

相关推荐

0 条评论