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