hof leverages CUE (configure, unify, execute) throughout and is core to the developer experience.

This decision was made for two initial reasons.

  1. hof is declarative code generation. We are essentially writing configuration when we write our input for code generation.
  2. CUE is purpose built for large scale configuration. It has good theory and tooling for working with configuration spanning many files.

CUE is ideal for many reasons:

  • looks like existing configuration while offering a full, logical language.
  • philosophically sound and based on a strong heritage.
  • declarative and logical, it proves that what you wrote is consistent and valid.
  • purpose built language, system, and tools for large scale configuration.

You can learn more about CUE from these links:

hof uses CUE v0.4.3

  1. Purpose built language for config, use as a DSL, lift much of the logic to CUE
  2. Module aware, we get packages and dependenices for free, can combine schemas and generators in interesting ways
2022 Hofstadter, Inc