Ion (serialization format) explained
Ion |
Extension: | .ion |
Developer: | Amazon |
Type: | Data interchange |
Ion is a data serialization language developed by Amazon. It may be represented by either a human-readable text form or a compact binary form. The text form is a superset of JSON; thus, any valid JSON document is also a valid Ion document.
Data types
As a superset of JSON, Ion includes the following data types
- : An empty value
- : Boolean values
- : Unicode text literals
- : Ordered heterogeneous collection of Ion values
- : Unordered collection of key/value pairs
The nebulous JSON 'number' type is strictly defined in Ion to be one of
- : Signed integers of arbitrary size
- : 64-bit IEEE binary-encoded floating point numbers
- : Decimal-encoded real numbers of arbitrary precision
Ion adds these types:
- : Date/time/time zone moments of arbitrary precision
- : Unicode symbolic atoms (aka identifiers)
- : Binary data of user-defined encoding
- : Text data of user-defined encoding
- : Ordered collections of values with application-defined semantics
Each Ion type supports a null variant, indicating a lack of value while maintaining a strict type (e.g.,,).
The Ion format permits annotations to any value in the form of symbols. Such annotations may be used as metadata for otherwise opaque data (such as a blob).
Implementations
Examples
Sample document
// comments are allowed in Ion files using the double forward slash
Uses
- Amazon's Quantum Ledger Database (QLDB) stores data in Ion documents.[1]
- PartiQL, an open source SQL-based query language also by Amazon, is built upon Ion. PartiQL supported queries are used by QLDB, S3Select.[2]
Tooling and extensions
External links
Notes and References
- Web site: We are the Amazon Managed Blockchain and Amazon QLDB Teams – Ask the AWS Experts – November 29 @ 3PM PST / 6PM EST. 28 November 2018.
- Web site: Announcing PartiQL: One query language for all your data. August 2019.