Announcing the release to OPAM of Orsetto 1.1, an update to a personal project of mine not sponsored by my employer. Licensed with BSD 2-Clause.
Q. What is Orsetto?
Aspires to do eventually for OCaml more or less what Serde has done for Rust, i.e. to be a curated and self-contained collection of structured data interchange languages with a cohesive and unified model of serialization and deserialization.
Q. What is new in this release?
The change log for the release is here: CHANGES.md
- Drops support for OCaml < 4.08.
- Major improvements in test coverage.
- Many corrections for logic errors.
- Issues database migrated to Atlassian Jira Cloud.
- A few important usability improvements (see below).
Some usability improvements are meant to replace obsolescent interfaces (now marked obsolescent with
@ocaml.deprecated). A few improvements to some interfaces with especially suboptimal design were updated with breaking changes, but these are not expected to cause major upgrade problems for anyone.
Some things have not changed:
- Still requires ocamlfind and does not build with dune.
- Still only supports JSON and CBOR.
Q. It looks incomplete. What are your plans for future development?
Yes, it’s a personal project. I’d welcome opportunities to collaborate with others who share my vision for the project. As long as it’s just me working on this, development will be somewhat slow. I have a lot of projects. This is the only open source one.
Orsetto 1.0.3 is the previous release. It offered parsers and emitter combinators for JSON and CBOR for OCaml >= 4.06.1 (including 4.13~alpha1). The quality of its JSON support is adequate, and it scores well on the nst/JSONTestSuite tests. The quality of its CBOR support is provisional, and not recommended.
Orsetto 1.1 is the current release. It adds generalized and extensible structured data interchange models with specializations for producing emitters and parsers for JSON and CBOR. The quality of the CBOR support is much improved.
Orsetto 1.2 is the next planned release. It will drop interfaces marked
@caml.deprecatedin the 1.1 release. It will also drop support for OCaml < 4.10, and I’d like to stop depending on ocamlfind. I hope to add a PPX for deriving parsers and emitters from OCaml data type definitions. I might also consider one or more new interchange languages— suggestions are heartily encouraged.