/deklarative

A library to work with serialized declarative configuration, e.g. Kubernetes-style YAML in a file

Primary LanguageGoApache License 2.0Apache-2.0

deklarative

godev build

A comprehensive set of tools for parsing, manipulating, combining and streaming declarative API specifications. In the world of k8s and cloud native with a lot of config languates, versions, there is a need for better tooling. deklarative aims to fix these in a high-level but extensible manner.

Libraries for framing, reading and writing byte streams and encoding, decoding, converting objects.

Go modules

tracing

A library for tracing your program using OpenTelemetry and logging using go-logr in a powerful, user-friendly, yet extensible way. Logging and tracing are interconnected in this approach, making it possible to look at instrumentation data from multiple angles.

content

A set of core interfaces defining primitives for declarative content metadata, recognizers, and content types.

json

A JSON library delegating JSON encoding/decoding to json-iterator/go, in the same way as Kubernetes implements it.

yaml

A YAML library delegating YAML 1.2 encoding/decoding to other libraries like yaml.v3 and kyaml. YAML is first converted to JSON, and then the json library is always used for decoding/encoding.

stream

A library for working with byte streams. It is interconnecting recognizer and metadata interfaces from content with io.Readers and io.Writers. It supports propagating contexts for telemetry propagation using the tracing library.

frame

A library building on top of stream for extracting frames from a byte stream, e.g. JSON objects or YAML documents, respectively.

serialize

A library using the frame library for reading frames, and then encoding/decoding these using e.g. the json and yaml lower-level libraries.

Maintainers

  • Lucas Käldström (@luxas)