Subject: [Json] JSON Schema Language, Draft 01

From: Ulysse Carion <[email-masked]>
Date: Thu, 6 Jun 2019 17:18:40 -0700

Hi folks,

Working off discussion in this mailing list, I've published a draft -01 of
JSON Schema Language:

https://tools.ietf.org/html/draft-json-schema-language-01

Notable changes are the addition of "timestamp" (RFC3339) as a type, as
well as the addition of enums. The syntax of JSL is now defined mostly
through CDDL, and an informative appendix maps some JSL schemas to CDDL
ones. The rest of the changes mostly serve to make the spec easier to read
and implement, nothing dramatic.

Would love feedback! What more should be removed or added to move this
forward?

Best,
Ulysse

---

From: Ulysse Carion <[email-masked]>
Date: Thu, 6 Jun 2019 20:04:00 -0700

Oh wait, another big change -- I got rid of the URI-based reference stuff.
Thanks to Tim Bray for pointing out it's kind of needlessly complex.

---

From: Ulysse Carion <[email-masked]>
Date: Sat, 29 Jun 2019 12:00:15 -0700

Hi all,

I wanted to provide an update on working tooling I've built on top of the
latest draft of JSON Schema Language. I believe the ease with which such
tooling can be written can be seen as an important reason why a minimal
schema language for JSON is useful.

I've made a code generator (jsl-codegen), a schema inference tool
(jsl-infer), and a test data generator / fuzzer (jsl-fuzz). They're all
open-source and available here:

* https://github.com/json-schema-language/jsl-codegen
* https://github.com/json-schema-language/jsl-infer
* https://github.com/json-schema-language/jsl-fuzz

The jsl-codegen tool supports Java, Golang, and TypeScript. It's similar to
protoc in the gRPC world, or the OpenAPI code generator tools.

The final tool, jsl-fuzz, is similar to the "json-generate" feature in the
CDDL tool in:

https://www.rfc-editor.org/rfc/rfc8610.html#appendix-F

jsl-infer can be seen as the inverse of jsl-fuzz.

The small size of the JSL spec means that making tooling like this is
rather trivial. jsl-infer and jsl-fuzz are 350 and 150 LOC, respectively.

I'm curious if folks have thoughts / criticisms on this tooling?

Regards,
Ulysse

On Thu, Jun 6, 2019 at 8:04 PM Ulysse Carion <[email-masked]> wrote:

>> Working off discussion in this mailing list, I've published a draft -01
>> of JSON Schema Language:
>>