SOML – A Config Format for Humans

(github.com)

16 points | by microflash an hour ago ago

10 comments

  • james_marks a few seconds ago

    From the title, I thought this was a specification for configuring humans. I don't quite know what that means, and I'm disappointed still not to know.

  • lightandlight 9 minutes ago

    Ironically the project seems LLM-generated.

    I don't want to read Claude's interpretation of why your project matters. I want you to tell me directly.

  • CodesInChaos 28 minutes ago

    What I'm missing:

    1. The readme doesn't make it clear what its "float" type is. A double, a decimal, implementation defined. I'm generally not a fan of restricting numbers to what a double can represent, like toml does.

    2. It doesn't have a good way to model key-value pair like types such as tagged unions, polymorphic types, or function invocations. Simply allowing a key-value pair as a value (right associative) where the key is a string matching the keys of an object would fix this. Alternatively a function call syntax would fix this, which would also enable tuples as a concept distinct from arrays.

  • jll29 35 minutes ago

    Looks like Windows *.ini format except ":" instead of "="...

    • CodesInChaos 26 minutes ago

      Not really. INI has a fixed structure (section>key>value) and its values are untyped.

  • drvd 30 minutes ago

    So a stripped down variant of cue? Why not use cue directly?

    • brianm 19 minutes ago

      Cue only really exists in go, and has a dependency chain to make maven weep.

      I think cue is better thought of as a language you use to generate JSON (or yaml, or, let's be honest, k8s flavored yaml) configs rather than a config language you use in your app.

  • esafak 36 minutes ago

    Can you add README sections for the schema and supported types?

  • arionmiles 33 minutes ago

    See also: HUML [1]

    1: https://huml.io/

  • paulddraper 42 minutes ago

    > Top-level arrays. A TOML file is always a table, so a list of records needs a wrapper key.

    I'm curious for example configs that are top-level lists?