LIBUCL
cue
Our great sponsors
LIBUCL | cue | |
---|---|---|
5 | 108 | |
1,594 | 4,754 | |
- | 2.3% | |
7.9 | 9.7 | |
3 days ago | 4 days ago | |
C | Go | |
BSD 2-clause "Simplified" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
LIBUCL
-
That's a Lot of YAML
Have you seen ucl? https://github.com/vstakhov/libucl
It seems very similar.
-
Structured configuration in Go
Structured configuration is the type of configuration language I wanted for Djinn, whereby parameters could be grouped together into blocks, and nested within each other. Hence, the structure. The language I came up with was heavily influenced by HCL, and libucl and has support for duration and size literal values. Below is what the language looks like,
- Libucl: Universal configuration language parser library
- An Intuition for Lisp Syntax
-
The YAML file of Prometheus Operator has over 13k lines, one of the longest YAML files on GitHub ever
Here you go: https://github.com/vstakhov/libucl
cue
-
Show HN: Workout Tracker – self-hosted, single binary web application
Where `kube.cue` sets reasonable defaults (e.g. image is /). The "cluster" runs on a mini PC in my basement, and I have a small Digital Ocean VM with a static IP acting as an ingress (networking via Tailscale). Backups to cloud storage with restic, alerting/monitoring with Prometheus/Grafana, Caddy/Tailscale for local ingress.
[1] https://www.talos.dev/
[2] https://cuelang.org/
-
Apple releases Pkl – onfiguration as code language
I've been somewhat surprised that CUE bills itself as "tooling friendly" and doesn't yet have a language server- the number one bit of tooling most devs use for a particular language.
I'm assuming it's becaus CUE is still unstable?
Anyway, if others are interested in CUE's LSP work, I think https://github.com/cue-lang/cue/issues/142 is the issue to subscribe to
-
Why the fuck are we templating YAML? (2019)
This is where I usually pitch in with "Have your heard of CUELang, our lord and savior?": https://cuelang.org/
- Not turing complete
-
10 Ways for Kubernetes Declarative Configuration Management
CUE: The core problem CUE solves is "type checking", which is mainly used in configuration constraint verification scenarios and simple cloud native configuration scenarios.
-
Lua is a viable alternative for JSON
If you really want executable configurations please consider a newer language like https://dascript.org or https://cuelang.org which provide better type safety.
1- https://news.ycombinator.com/item?id=38030778
-
Writerside – a new technical writing environment from JetBrains
Markdown and XML are nice, but what about more advanced documentation formats like OpenAPI? For one recent project, I set up automatic generation of the OpenAPI docs from (much more compact and flexible) CUE definitions (https://cuelang.org/) - which has the bonus of also being able to test the API against the definitions. JetBrains has a CUE plugin, but it's really barebones (doesn't even support jumping from the usage of a schema to its definition). Of course the possibilities when generating docs are endless (just think of the various syntaxes for doc comments, embedding examples/tests in source code etc.)...
-
Show HN: Config-file-validator – CLI tool to validate all your config files
It doesn't include validators for TOML and INI, but if you're doing JSON and YAML, I would take a look at using or building upon CUE (https://cuelang.org/). It is a different take on schema definition (plus more), and is surprising terse and powerful model.
- That's a Lot of YAML
- An INI Critique of TOML
- What Is Wrong with TOML?
What are some alternatives?
yaml-cpp - A YAML parser and emitter in C++
dhall-lang - Maintainable configuration files
frozen - JSON parser and generator for C/C++ with scanf/printf like interface. Targeting embedded systems.
jsonnet - Jsonnet - The data templating language
YAJL - A fast streaming JSON parsing library in C.
terraform - Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API
starlark-rust - A Rust implementation of the Starlark language
JsonCpp - A C++ library for interacting with JSON.
Protobuf - Protocol Buffers - Google's data interchange format
Boost.PropertyTree - Boost.org property_tree module
jsonnet-libs - Grafana Labs' Jsonnet libraries