Python封装的https://cuelang.org
项目描述
CUE数据约束语言
配置、统一、执行
CUE是一种开源的数据约束语言,旨在简化定义和使用数据相关的任务。
它是JSON的超集,允许熟悉JSON的用户快速入门。
它是用来做什么的?
您可以使用CUE来做以下事情:
- 为您的数据定义详细的验证模式(手动或自动从数据中生成)
- 减少数据中的模板代码(手动或自动从模式中生成)
- 从代码中提取模式
- 生成类型定义和验证代码
- 以原则的方式合并JSON
- 定义并运行声明性脚本
如何实现?
CUE将模式和数据的概念合并在一起。同一个CUE定义可以同时用于验证数据并作为模板来减少模板代码。模式定义通过细粒度的值定义和默认值得到丰富。同时,数据可以通过移除由这种详细定义暗示的值而简化。这两个概念的合并使得许多任务可以以原则的方式处理。
约束提供了一种简单、明确但功能强大的替代继承的方法,这是配置语言中常见的复杂性来源。
CUE脚本
CUE脚本层在数据之上定义了用CUE表达的声明性脚本。这解决了三个问题:解决CUE定义的封闭性(我们说CUE是密封的),提供一种轻松分享常用脚本和工作流程以使用数据的方法,以及让CUE了解数据的使用情况以优化验证。
存在许多工具可以解释数据或使用特定领域的专用语言(如Kustomize、Ksonnet)。这解决了处理数据的一个层面问题,但当在工作流程中集成其他系统时,该问题可能在更高层面上重复出现。CUE脚本是一种通用的脚本,允许用户定义任何工作流程。
工具
CUE是为自动化设计的。以下是其中的一些方面:
- 转换现有的YAML和JSON
- 自动简化配置
- 为自动化工具设计的丰富API
- 格式化工具
- 任意精度算术
- 从源代码生成CUE模板
- 从CUE定义生成源代码(待办事项)
下载和安装
发布构建
从GitHub下载最新版本。
使用Homebrew安装
使用Homebrew,您可以使用CUE Homebrew tap进行安装
brew install cuelang/tap/cue
从源代码安装
如果您已经安装了Go,简短的版本是
GO111MODULE=on go get cuelang.org/go/cmd/cue
或者,如果您使用的是Go 1.16
go install cuelang.org/go/cmd/cue@latest
这将安装cue
命令行工具。
有关更多详细信息,请参阅安装CUE。
学习CUE
学习基础最快的方法是遵循基本语言结构的教程。
关于如何转换和重构现有的Kubernetes配置的更详细教程以书面形式提供在此处。
参考资料
贡献
我们的标准Git存储库位于https://cue.googlesource.com。
要贡献,请阅读贡献指南。
要报告问题或提出功能请求,请使用问题跟踪器。
更改可以通过Gerrit或Github拉取请求进行贡献。
联系方式
您可以通过以下方式与cuelang社区取得联系:
- 通过GitHub Discussions提问
- 在我们的Slack工作区与我们聊天。
除非另有说明,否则CUE源文件是根据LICENSE文件中找到的Apache 2.0许可证进行分发的。
这不是一个官方支持的谷歌产品。