Buf CLI是Protobuf开发的一体式工具,已达到v1。0

2022-02-25 16:33:14

我们在Buf的任务是用模式驱动的开发取代主导的REST/JSON API开发范式。为此,我们的目标是构建一个以协议缓冲区为基础的新生态系统。我们';我选择Protobuf是因为它';s是迄今为止应用最广泛、最可靠的API接口描述语言(IDL)。但我们觉得缺少的一件事是一个单一的、统一的工具,它可以作为使用Protobuf的显著升级体验的基础。为了让生态系统走上更好的道路,我们创建了Buf CLI,或简称Buf。

现在,经过两年多的工作,我们';我们激动地宣布,buf已经正式进入v1。0里程碑。在这篇文章中,我们想向不熟悉我们的CLI的人介绍一下,并阐述这1.0版本的一些含义。

我们将buf CLI打造成一种";一站式服务";用于Protobuf开发。我们';我将在这里介绍一些核心功能。

buf lint命令使您可以进行lint。proto文件,这有助于确保Protobuf源符合选择的最佳实践。它提供了一套内置的标准化lint规则,这些规则植根于整个生态系统的最佳实践,用于构建一致、可维护的Protobuf模式。您可以配置要应用于Protobuf模块的规则,还可以指定异常。

buf breaking命令允许您在任意两个Protobuf输入之间执行断路变化检测。例如,您可以使用它来确保Git存储库的开发分支中的Protobuf源与主分支兼容。与皮棉一样,buf可以应用特定的打破变化规则。

buf generate命令使您能够从Protobuf源生成代码存根,并在buf中配置插件和代码输出目录。gen.yaml文件。有了这个功能,您可以从工作流中删除复杂的protoc调用,这在传统上是基于Protobuf的API开发中比较粗糙的优势之一。

管理。proto文件长期以来一直是Protobuf生态系统中的一个痛点。在过去,开发人员需要通过vendoring管理Protobuf依赖关系,这很难扩展,而且很脆弱。buf通过使您能够通过配置来管理Protobuf依赖项,从而解决了这个问题。在你的屁股里。yaml文件您可以列出Protobuf依赖项,并从Buf模式注册表中提取最近的引用,或将依赖项固定到特定版本。

您可以使用buf CLI与buf模式注册表进行交互,该注册表提供了一个集中化的平台,用于管理Protobuf资产,如版本化的buf模块和Protobuf插件,以及远程代码生成、生成的Protobuf API文档和托管的Protobuf插件等功能。BSR最近进行了测试,大多数与BSR相关的buf操作都在buf beta命令下,但我们的目标是实现buf';s的BSR功能即将退出测试版。

对我们来说,CLI不是';不是辅助工具或旁白;我们将其视为成熟的产品。我们的政策是绝不在CLI版本内进行破坏性更改。既然buf已经达到了稳定的1.0,那么在v2之前就不会有突破性的变化。0-我们没有计划发布v2。0.虽然我们确实打算在buf CLI中发布新功能,但您可以期待您所依赖的所有功能的总体稳定性。

buf是完全开源的,在Apache 2.0许可下。要保持最新,请在GitHub上启动或观看bufbuild/buf存储库,并密切关注变更日志。

如果您对Buf CLI有疑问或使用它有困难,请访问我们的Slack channel和Buf';我们的工程团队会帮你解决问题。

有关功能请求、错误或技术问题,请联系我们[email protected].如需更多一般性查询,请发送电子邮件至[email protected].