Mir Ion serialization engine supports
- Text and binary Ion
- JSON
- MsgPack
- YAML
- CSV
- CBOR (encoding only)
- Bloomberg
- Custom formats
You can find the documentation for this library here. Additionally, for examples of the Ion format, you can check the Ion Cookbook
Test data from nativejson-benchmark
-------------------------------------------------
Binary Ion writing 0.601 GB/s
is equivalent of 1.598 GB/s for JSON
JSON -> binary Ion 1.16 GB/s
MsgPack -> binary Ion 0.841 GB/s
is equivalent of 1.321 GB/s for JSON
Ion is 96% smaller then minimized JSON
and 69% smaller then MsgPack
- - - - - - - - - - - - - - - - - - - - - - - - -
processed file: benchmark/twitter.json
number of iterations: 2000
os: 64bit osx
-------------------------------------------------
Test data from kostya/benchmarks.
-------------------------------------------------
Binary Ion writing 0.251 GB/s
is equivalent of 1.063 GB/s for JSON
JSON -> binary Ion 0.6 GB/s
MsgPack -> binary Ion 0.309 GB/s
is equivalent of 1.098 GB/s for JSON
Ion is 134% smaller then minimized JSON
and 19% smaller then MsgPack
- - - - - - - - - - - - - - - - - - - - - - - - -
processed file: /tmp/1.json
number of iterations: 10
os: 64bit osx
-------------------------------------------------
Mir Ion internals are @nogc
and almost all are preallocated. If DIP1008 is enabled, then the parsing exception will contains additional information about error location in the file and last occured key.
- Binary Ion Value parsing and skip-scan iteration.
- Binary Ion conversions to D types.
- Binary Ion conversions from D types.
- Fast hash table for Ion Symbol Tables
- Fast CTFE Symbol Table for deserialization
- Ion Symbol Tables
- JSON to Ion
- Ion to JSON
- Text Ion to Ion
- Ion to Text Ion
- Serialization API
- Deserialization API
- Precise decimal to floating conversion (except subnormals)
- Precise floating to decimal conversion.
- Local Symbol Tables
- Shared Symbol Tables
- Chunked JSON reader
- Chunked binary Ion Value Stream reader
- MessagePack parsing
- Ion to MessagePack