crdoconnor / strictyaml

Type-safe YAML parser and validator.
https://hitchdev.com/strictyaml/
MIT License
1.47k stars 60 forks source link

Independent specification #49

Open matthias-t opened 5 years ago

matthias-t commented 5 years ago

I wonder if it would make sense to write a complete specification for StrictYAML that does not depend on the YAML specification (as in, you can write a compliant parser without reading that one first), to help it spread to other programming language ecosystems.

There has been discussion in the rust subreddit as to wether YAML's enormous and ambiguous specification or TOML's alien syntax was preferable. Rust's popular (de)serialization framework serde uses structs to define a schema, so StrictYAML would be a great fit.

crdoconnor commented 5 years ago

I've had the exact same thought, yes. I wasn't really sure how to get started with the spec though.

crdoconnor commented 5 years ago

In any case I'd like to help any way I can with this. I'd love to see the rust community starting to use strictyaml.

matthias-t commented 5 years ago

I've studied the yaml spec and https://hitchdev.com/strictyaml/ and started working on a draft over on sr.ht. It's not much at all yet (I hope i can work on it a bit this weekend). Contributions are welcome. Are you fine with sending patches to my public inbox or should I setup a mirror on github? (or do you want to create an org? or include it in this repo?) Also, is CC0 a good license for a specification?

crdoconnor commented 5 years ago

This looks good so far.

I don't mind where this goes (it can always be moved later), but it would be nice for it to be a repo.

CC0 seems good, yes.

matthias-t commented 5 years ago

it would be nice for it to be a repo

Technically, it already is a repo, just not on github (sr.ht doesn't use pull-requests but the more traditional mailing list and patches workflow). That said, I have set up a second repo here.

About the license, I'm just worried that some things may resemble the YAML spec, which explicitly states:

This document may be freely copied, provided it is not modified.

matthias-t commented 5 years ago

The obstacle I'm facing is that existing formal grammars lack:

So, it might be necessary to define a formal grammar, e.g. using leanprover/lean.

julie777 commented 2 years ago

it would be nice for it to be a repo

Technically, it already is a repo, just not on github (sr.ht doesn't use pull-requests but the more traditional mailing list and patches workflow). That said, I have set up a second repo here.

About the license, I'm just worried that some things may resemble the YAML spec, which explicitly states:

This document may be freely copied, provided it is not modified.

I don't think including parts of it in another document that doesn't describe itself as the yaml spec would count as modified. I guess it would really depend on the intent of the document.