Update tech_docs/CUE.md
This commit is contained in:
@@ -1,3 +1,46 @@
|
||||
Welcome to the world of **CUE** – *Configure-Unify-Execute* – a language that turns the usual “write YAML and pray” workflow into something that feels almost… serendipitous.
|
||||
|
||||
In CUE you don’t *imperatively* build configs, websites, DB schemas, or API specs.
|
||||
Instead you **declare** the shape, constraints and defaults you want, then let CUE’s graph-unification engine search the (enormous but finite) space of legal values and hand you back the *one* deterministic result that satisfies every rule.
|
||||
That moment when `cue export` suddenly spits out the exact JSON or SQL DDL you needed? **Deterministic serendipity** – reproducible, cacheable, diff-able.
|
||||
|
||||
A 30-second taste:
|
||||
|
||||
```cue
|
||||
package site
|
||||
|
||||
#Page: {
|
||||
title: string & =~"^[A-Z].*"
|
||||
path: string & =~"^/[a-z0-9/-]+$"
|
||||
meta: {
|
||||
description: string & strings.MinRunes(30) & strings.MaxRunes(160)
|
||||
keywords: [...string] & list.Unique()
|
||||
}
|
||||
}
|
||||
|
||||
home: #Page & {
|
||||
title: "Welcome to the World of CUE"
|
||||
path: "/"
|
||||
meta: keywords: ["cue", "configure", "unify", "execute"]
|
||||
}
|
||||
```
|
||||
|
||||
Run `cue export home` and you get the exact JSON your static-site generator needs, with every constraint already proven.
|
||||
Change a single keyword and CUE re-unifies, yielding a *new* but still deterministic artefact.
|
||||
|
||||
The same file can:
|
||||
|
||||
* generate OpenAPI specs, Terraform, Kubernetes YAML
|
||||
* validate incoming JSON requests at runtime
|
||||
* spit out SQL DDL and Go structs (`cue get go`) or even HTML via a tiny script
|
||||
|
||||
Because CUE merges **types, values and constraints** into one concept, the usual inheritance hell disappears: you compose by *unification* (`&`) instead of copy-paste or fragile overrides.
|
||||
|
||||
So yes – in the CUE universe you write a handful of declarations, run `cue`, and the “accidental” correct configuration pops out every single time.
|
||||
Raw deterministic serendipity, no runtime surprises, no “works on my machine”.
|
||||
|
||||
---
|
||||
|
||||
**CUE (Configure-Unify-Execute)** is an **open-source data constraint language** developed at Google, designed for **configuration management, validation, and templating**. It stands for **Configure, Unify, Execute**.
|
||||
|
||||
### Purpose
|
||||
|
||||
Reference in New Issue
Block a user