hof leverages CUE (configure, unify, execute) throughout, built into the core, extended to contexts, and as the core user or developer experience. This decision was made for two initial reasons.
- we are essentially writing configuration for software and source code when we write our designs and data models.
- CUE is the best system for configuration tasks after our survey and attempt at writing our own.
CUE is the best for many reasons (in our opinions):
- philosophically sound
- declarative through unification
- purpose built language, system, and tools
- shared heritage with Golang, Kubernetes, GCL/Borgcfg
You can learn more about CUE from these links:
- Learn about CUE
- Core issues addressed by CUE
- Read about the Logic of CUE
- Go through the tutorials
- CUE GitHub Discussions
- The CUE Language Specification
hof uses CUE v0.3.0
You will find additional discussions in this documentation which talk about CUE as we introduce new syntax and concepts.
note, Cue v0.3.0 is still in alpha stage but becoming increasingly stable. See https://github.com/cuelang/cue for the current status.