SaaSHub helps you find the best software and product alternatives Learn more →
Top 11 configuration-language Open-Source Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: HCL: Toolkit for Structured Configuration Languages | news.ycombinator.com | 2024-04-23
Kubernetes config is a decent example. I had ChatGPT generate a representative silly example -- the content doesn't matter so much as the structure:
https://gist.github.com/cstrahan/528b00cd5c3a22e3d8f057bb1a7...
Now consider 100s (if not 1000s) of such files.
I haven't given Pkl an in depth look yet, but I can say that the Industry Standard™ of "simple YAML" + string substitution (with delicate, error prone indentation -- since YAML is indentation sensitive) is easily beat by any of:
- https://jsonnet.org/
- https://nickel-lang.org/
- https://nixos.org/manual/nix/stable/language/index.html
- https://dhall-lang.org/
- (insert many more here, probably including Pkl)
So, its key features are:
1. domain-specific: designed for conveniently creating and composing derivations. This reason alone already justifies a new language, or an embedded domain-specific language (such as the Guile/Scheme for guix), or a mix of both (Starlark, the build language of Bazel embedded in a restricted Python-variant).
2. purely functional: this ties well into the philosophical backing of Nix the package manager, which aims to be purely functional, also known as hermeticity in other build systems (Bazel).
3. lazily evaluated: similar to other build systems (including Bazel), so that you can build only what you need on demand.
4. dynamically typed: this one is controversial. Being dynamically typed—in other words, not developing a type system—gets Nix out of the door first. But users often complain about the lack of proper types and modularity. There are experiments to address this, such as Nickel (https://github.com/tweag/nickel).
It is understandable that a one-pager may not have space for the whys.
KCL: A declarative configuration and policy programming language implemented by Rust, which improves the writing of a large number of complex configurations through mature programming language technology and practice, and is committed to building better modularity, scalability and stability around configuration, simpler logic writing, fast automation and good ecological extensionally.
configuration-language related posts
-
HCL: Toolkit for Structured Configuration Languages
-
Expr 1.16.5
-
Nix – A One Pager
-
RCL: A Reasonable Configuration Language
-
Pkl, a Programming Language for Configuration
-
TySON: TypeScript Object Notation
-
Expr 1.16
-
A note from our sponsor - SaaSHub
www.saashub.com | 10 May 2024
Index
What are some of the best open-source configuration-language projects? This list will help you:
Project | Stars | |
---|---|---|
1 | expr | 5,621 |
2 | hcl | 5,102 |
3 | dhall-lang | 4,137 |
4 | nickel | 2,161 |
5 | kcl | 1,325 |
6 | dhall | 900 |
7 | tyson | 530 |
8 | rcl | 135 |
9 | otpcl | 36 |
10 | serde-gura | 16 |
11 | config | 12 |
Sponsored