Package encoding contains subpackages to convert CUE to and from byte-level and textual representations.
For some packages, CUE can be mapped to both concrete values and higher-level definitions. For instance, a Go value can be mapped based on its concrete values or on its underlying type. Similarly, the protobuf package can extract CUE definitions from .proto definitions files, but also convert proto messages to concrete values.
To clarify between these cases, we adopt the following naming convention:
Name Direction Level Example Decode x -> CUE Value Convert an incoming proto message to CUE Encode CUE -> x Value Convert CUE to JSON Extract x -> CUE Type Extract CUE definition from .proto file Generate CUE -> x Type Generate OpenAPI definition from CUE
To be more precise, Decoders and Encoders deal with concrete values only.
Unmarshal and Marshal are used if the respective Decoder and Encoder decode and encode from and to a stream of bytes.
|gocode||Package gocode defines functions for extracting CUE definitions from Go code and generating Go code from CUE values.|
|gocode/gocodec||Package codec converts Go to and from CUE and validates Go values based on CUE constraints.|
|json||Package json converts JSON to and from CUE.|
|openapi||Package openapi provides functionality for mapping CUE to and from OpenAPI v3.0.0.|
|protobuf||Package protobuf defines functionality for parsing protocol buffer definitions and instances.|
|yaml||Package yaml converts YAML encodings to and from CUE.|