[ANN] ocaml-wire: a Binary wire format DSL with EverParse 3D output

I am happy to announce the release 1.1.0 of ocaml-wire on opam!

The release improves a few things:

  • the generated, formally-verified parsers can now be cross-compiled (including to ocaml-freestanding to be included in a unikernel). The installed C headers are also now much smaller and only expose safe entry point.
  • ocaml-wire now use [GitHub - mirage/optint: Library to provide a fast integer (x64 arch) or allocated int32 (x84 arch) · GitHub] for uint32 fields. This helps to run the generated OCaml parsers/serialisers on safely on js_of_ocaml/wasm_of_ocaml (which is useful to encode TCP sequence numbers safely to run a full tcp/ip stack in wasm for instance).
  • parsing errors (in OCaml) are now much more precise and show the codecs, field names and stream location.
  • codecs are now safe to share across domains (each domain now have their own scratch buffers)

The full changelog is available here.

2 Likes