Configure, Unify, Execute
CUE is an open source data constraint language which aims to simplify tasks involving defining and using data. It can be used for data templating, data validation, and even defining scrips operating on data.
CUE is a constraint-based language. Constraints act both as data templates and detailed type definitions. Constraints provide a powerful yet simple alternative to inheritance, a common source of complexity with existing configuration languages. Constraints also provide an expressive way to define the possible values of data types, which in turn can be used for data validation in various applications.
The CUE tooling also provides integrated declarative scripting aimed at simplifying putting configurations to good use while giving static analysis tools maximum domain knowledge.
Some highlights:
If you already have Go installed, the short version is:
go get -u cuelang.org/go/cmd/cue
This will install the cue
command line tool.
For more details see Installing CUE.
The fastest way to learn the basics is to follow the tutorial on basic language constructs.
A more elaborate tutorial demonstrating of how to convert and restructure an existing set of Kubernetes configurations is available in written form.
Language Specification: official CUE Language specification.
API: the API on godoc.org
Builtin packages: builtins available from CUE programs
cue
Command line reference: the cue
command
Our canonical Git repository is located at https://cue.googlesource.com.
To contribute, please read the Contribution Guide.
To report issues or make a feature request, use the issue tracker.
Unless otherwise noted, the CUE source files are distributed under the Apache 2.0 license found in the LICENSE file.
This is not an officially supported Google product.