Loving this! Like other commenters here the syntax reminds me of KDL, except a lot simpler. I checked it out and was fully nerdsniped, so wrote an implementation https://github.com/Heliodex/confetti-go> that passes all conformance tests, giving me a good feel for the language. Pretty easy to get working as well, though I haven't tried adding any of the appendices yet.
Show HN: I made Confetti: a configuration language file format
61–64 of 64 posts
Re: Show HN: I made Confetti: a configuration language file format
#62Earlier quoted context omitted.
I think you missed the "typeless" idea. That basically means every value is a string and so it's up for the application to parse and validate.
so you mean a config file that can have a different meaning depending on who's parsing? sounds nice and not dangerous at all
Isn't the meaning of a config file always dependent on the application you are configuring?
Re: Show HN: I made Confetti: a configuration language file format
#63Of late I have grown fond of ... brace yourself ... RDF in turtle format for config files. Supports comments, multiline literals, built-in support for references, and rich typing via xsd casting when necessary e.g.
ex:subject ex:createdOn "2002-01-24T12:00:00.000Z"^^xsd:dateTime ;
You can have no namespace (:subject :name "foo") or one or more to help separate metadata and structure (the config structure) from actual config data (ex:myInstance config:logfile "pathname to file"). And of course, all the metadata itself is labelable and can carry comments and descriptions so the config is essentially self-documenting. Or at least there is a standard, straightforward way to extract and organize the labels and comments if time has been taken to add them.
Re: Show HN: I made Confetti: a configuration language file format
#64I've been a long-time fan of KDL format, so I liked Confetti even more.
I spent a couple hours writing a fully complaint parser in pure Python. It passes all tests, and among other things has a separate "mapper" mode for more pythonic usage.