It doesn't have functions, but I've also released a type-checked configuration language recently[0]. The main difference is it's designed to be easy to edit, even by non-technical users.
Syntax highlighting and formatting is nice, but I think error reporting is more important for the end user.
Zaml auto-validates configuration structure, removing the need to write most boilerplate on the programmer's side.
Can you help me understand Skycfg's type safety and validation? When I see `return [pb.StringValue(value = 123)]`, does this imply the schema is written inline, alongside the values?
For example, if you had this schema:
package my.example.schema;
message Person {
string name = 1;
int32 id = 2;
string email = 3;
}
Then you could build a value using Skycfg like this: pb = proto.package("my.example.schema")
msg = pb.Person(
id = 1234,
name = "Jane Doe",
email = "jdoe@example.com",
)
print(msg)
For Kubernetes, we're using the schema at https://github.com/kubernetes/api and for Envoy we use https://github.com/envoyproxy/data-plane-api/tree/master/env...Yaml is beautiful and easy, this looks like a nightmare.
5 notations for things, unclear whitespace delimiters, graph/labels, etc.