sapio-lang / sapio

A Bitcoin Programming Language
Mozilla Public License 2.0
244 stars 43 forks source link

Replace JSONSchema #236

Open JeremyRubin opened 1 year ago

JeremyRubin commented 1 year ago

we'd like to replace JSONSchema with something simpler and "application specific" that can go into rust-bitcoin (that means no deps not already in rust-bitcoin). There can be a function from our spec -> JsonSchema too, for compatibility. DHall is not an option because it has a bunch of deps.

ProofOfKeags commented 1 year ago

Is the issue having deps that are managed by Cargo? I ask because hypothetically if Dhall was the right model (not asserting it is here), it could be reimplemented within rust-bitcoin. If it isn't but we want something similarly sophisticated we could end up with a significant amount of hand-rolled code in rust-bitcoin that "has nothing to do with" rust-bitcoin.

JeremyRubin commented 1 year ago

you'd have to ask e.g. @apoelstra about what is acceptable in rust-bitcoin land / what design goals should be.

Vendoring deps might help, but Dhall has a lot of deps, including things like parser generators, which would need to be reviewed as well. https://crates.io/crates/dhall/0.12.0/dependencies