[ANN] First release of Jsonxt - a set of JSON parsers and writers

Jsonxt provides a number of JSON parsers and writers for RFC 8259 compliant JSON as well as non-standard extensions supported by Yojson. Features include

  • RFC 8259 compliant when in strict and basic mode
  • Performance focused especially for files and strings
  • Support for standard and extended JSON tree types:
    • Strict follows a strict interpretation of RFC 8259 with all numbers represented as floats.
    • Basic extends the strict type to include convenience types while maintaining RFC compliance. This is compatible with Yojson’s Basic type
    • Extended adds additional non-standard types including tuples and variants and is not RFC compliant. This is compatible with Yojson’s Safe type
  • A number of different parsers including
    • A standard JSON tree parser for various sources including string, file and channel
    • A Stream parser that returns a stream of raw JSON tokens.
    • A monad based parser compatible with async
  • Writers including
    • File and string writers
    • A monad based writer that is compatible with async
    • A stream writer that converts a stream of JSON tokens
  • Support for streaming JSON via the Stream module
  • Standard interfaces including Yojson compatibility
  • Support for ppx_deriving_yojson and ppx_yojson_conv via Yojson compatibility

The package is available via opam, with documentation on github.io. The source can be found at github/jsonxt