用途:CUE 用于配置编写、数据校验与代码生成,核心思想是“值即类型”,通过格统一(unification,取最大下界 GLB)组合约束。
主要能力:值同时是类型约束;支持统一运算(如 a & b 合并字段);支持约束(范围、正则等)、析取(sum 类型)、列表推导;可生成代码;有意非图灵完备以保证终止。可导出 JSON Schema(cue export --out jsonschema schema.cue)、OpenAPI(cue export --out openapi api.cue),从 Go 类型导入(cue get go ./pkg/...),并校验 YAML/JSON(cue vet data.yaml schema.cue)。
使用方式:安装 go install cuelang.org/go/cmd/cue@latest;常用命令包括 cue eval、cue export、cue vet、cue def、cue fmt、cue get、cue mod、cue trim。示例中展示 #Person 定义、具体值、列表推导与状态析取。
适用场景:Kubernetes/云配置、通用配置、schema 生成与校验。
限制:非图灵完备;错误信息为结构性;与 Nickel 相比采用格统一而非渐进类型与契约;sexp 需借助外部工具桥接。其余细节暂未提供。