cue: remove lambda support

Lambdas are a common source of problem with
configuration languages due to their non-orthogonality
w.r.t. structs.
Structs can be used to simulate lambdas. A better way
to implement lambdas would be to have a per-struct
emit value. This generalizes the emit value, making it a
more foundational solution, while avoiding the issues
with lambda.

Change-Id: I2082da5b3c0387e25ecf5e525e2db610df8eef2c
23 files changed
tree: ee72e3a843860e099b4e9830efa4b37d47229b3d
  1. cmd/
  2. cue/
  3. doc/
  4. internal/
  5. pkg/
  6. AUTHORS
  7. CONTRIBUTING.md
  8. go.mod
  9. go.sum
  10. LICENSE
  11. README.md
README.md

The CUE Configuration Language

Configure, Unify, Execute

CUE is an open source configuration language which aims to make complex configurations more manageable and usable.

CUE is a constrained-based language. Constraints provide a powerful yet simple alternative to inheritance, a common source of complexity with other configuration languages.

The CUE tooling also provides integrated declarative scripting aimed at simplifying putting configurations to good use while giving static analyis tools maximum domain knowledge.

Some highlights:

  • JSON superset: get started quickly
  • convert existing YAML and JSON
  • declarative scripting
  • automatically simplify configurations
  • formatter
  • arbitrary-precision arithmetic
  • rich APIs designed for automated tooling
  • a formalism conducive to automated reasoning
  • generate CUE templates from source code
  • generate source code from CUE configurations (TODO)

Download and Install

Install From Source

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.

Learning CUE

A demonstration of how to convert and restructure and existing set of Kubernetes configurations is available in written form or as video.

References

Contributing

Our canonical Git repository is located at https://cue.googlesource.com.

To contribute, please read the Contribution Guidelines.

Note that we do not accept pull requests and that we use the issue tracker for bug reports and proposals only.

Unless otherwise noted, the CUE source files are distributed under the Apache 2.0 license found in the LICENSE file.