Skip to content

libmir/mir-ion

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Dub version Dub downloads License codecov Build Status CircleCI Ion Test Status

Mir Ion

Mir Ion serialization engine supports

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

  • 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

About

Ion, JSON, YAML, CSV, and Msgpack serialization framework

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages