config
LIBUCL
config | LIBUCL | |
---|---|---|
1 | 5 | |
12 | 1,595 | |
- | - | |
0.9 | 7.9 | |
about 1 year ago | 8 days ago | |
Go | C | |
MIT License | BSD 2-clause "Simplified" License |
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.
config
-
Structured configuration in Go
as you can see, it is very similar to HCL, however there is less visual noise as I call it. The library developed for this is called config which is used for decoding the configuration, there is not support as of yet for encoding. With this library you will be able to configured support for environment variable expansion and support for includes. I have found that this strikes the balance I require of a configuration language, declarative, with limited visual noise, and easy for people to read. This is hardly a silver bullet, and no doubt will demonstrate it's limitations depending on what it is you're trying to configured. Nonetheless, I have found it be flexible for my use cases. You can see examples of this language in the djinn-ci/djinn repository itself in the dist directory.
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
What are some alternatives?
djinn - Source code for the Djinn CI platform
yaml-cpp - A YAML parser and emitter in C++
frozen - JSON parser and generator for C/C++ with scanf/printf like interface. Targeting embedded systems.
YAJL - A fast streaming JSON parsing library in C.
RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API
JsonCpp - A C++ library for interacting with JSON.
Boost.PropertyTree - Boost.org property_tree module
QJson - QJson is a qt-based library that maps JSON data to QVariant objects.
qt-json - A simple class for parsing JSON data into a QVariant hierarchy and vice versa.
libjson - a JSON parser and printer library in C. easy to integrate with any model.
json - JSON for Modern C++
json-parser - Very low footprint DOM-style JSON parser written in portable ANSI C