mir-ion 2.2.0
Fast, Expressive, and Easy to use Ion, JSON, YAML, CSV, and Msgpack Serialization Library with SIMD optimization.
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
Mir Ion
Mir Ion serialization engine supports
- Text and binary Ion
- JSON
- MsgPack
- YAML
- CSV
- Bloomberg
- Custom formats
Documentation
You can find the documentation for this library here. Additionally, for examples of the Ion format, you can check the Ion Cookbook
Benchmarks
kostya JSON benchmarks
ARM64
Twitter data set
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
-------------------------------------------------
Kostya data set
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
-------------------------------------------------
Exceptions
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.
Feature Status
- [x] Binary Ion Value parsing and skip-scan iteration.
- [x] Binary Ion conversions to D types.
- [x] Binary Ion conversions from D types.
- [x] Fast hash table for Ion Symbol Tables
- [x] Fast CTFE Symbol Table for deserialization
- [x] Ion Symbol Tables
- [x] JSON to Ion
- [x] Ion to JSON
- [x] Text Ion to Ion
- [x] Ion to Text Ion
- [x] Serialization API
- [x] Deserialization API
- [x] Precise decimal to floating conversion (except subnormals)
- [x] Precise floating to decimal conversion.
- [x] Local Symbol Tables
- [ ] Shared Symbol Tables
- [x] Chunked JSON reader
- [x] Chunked binary Ion Value Stream reader
- [x] MessagePack parsing
- [x] Ion to MessagePack
- Registered by Ilia Ki
- 2.2.0 released a year ago
- libmir/mir-ion
- Apache-2.0
- Tamedia Digital, 2016, Symmetry Investments and Kaleidic Associates, 2020, Symmetry Investments and Ilia Ki 2021-
- Authors:
- Dependencies:
- mir-cpuid, mir-algorithm
- Versions:
-
2.3.2 2024-Apr-23 2.3.1 2024-Apr-19 2.3.0 2024-Apr-19 2.2.1 2023-Sep-15 2.2.0 2023-Aug-02 - Download Stats:
-
-
6 downloads today
-
45 downloads this week
-
270 downloads this month
-
256765 downloads total
-
- Score:
- 3.1
- Short URL:
- mir-ion.dub.pm