mir-ion 1.0.52
Fast, Expressive, and Easy to use Ion, JSON, Msgpack Serialization Library with optional 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
This library seeks to implement the Ion file format. We aim to support both versions of Ion (text & binary Ion), as well as providing an implementation of the format that is performant and easy-to-use.
Mir Ion serialization engine supports
Mir Ion supports JSON de/serialization out of the box. On the other hand, you may want to use another our JSON library -- Asdf. It uses the same serialization User Defined Attributes.
Benchmarks
kostya/benchmarks
ARM64
Twitter data set
Test data from nativejson-benchmark
-------------------------------------------------
Binary Ion parsing 4.32 GB/s (estimated)
is equivalent of 11.482 GB/s for JSON
Binary Ion writing 0.517 GB/s
is equivalent of 1.375 GB/s for JSON
JSON -> binary Ion 0.564 GB/s
MsgPack -> binary Ion 0.707 GB/s
is equivalent of 1.109 GB/s for JSON
Ion is 0.96% smaller then minimized JSON
and 0.69% smaller then MsgPack
- - - - - - - - - - - - - - - - - - - - - - - - -
processed file: benchmark/twitter.json
number of iterations: 2000
os: 64bit osx
-------------------------------------------------
Kostya data et
Test data from kostya/benchmarks.
-------------------------------------------------
Binary Ion writing 0.216 GB/s
is equivalent of 0.916 GB/s for JSON
JSON -> binary Ion 0.331 GB/s
MsgPack -> binary Ion 0.275 GB/s
is equivalent of 0.978 GB/s for JSON
Ion is 1.34% smaller then minimized JSON
and 0.19% smaller then MsgPack
- - - - - - - - - - - - - - - - - - - - - - - - -
processed file: /tmp/1.json
number of iterations: 10
os: 64bit osx
-------------------------------------------------
Documentation
You can find the documentation for this library here. Additionally, for examples of the Ion format, you can check the Ion Cookbook
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
- 1.0.52 released 2 years ago
- libmir/mir-ion
- BSL-1.0
- Tamedia Digital, 2016-, Symmetry Investments and Kaleidic Associates, 2020-
- 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:
-
-
10 downloads today
-
54 downloads this week
-
255 downloads this month
-
256841 downloads total
-
- Score:
- 3.1
- Short URL:
- mir-ion.dub.pm