RION Ops for Java
Rion Ops for Java is an open source toolkit that enables you to read and write the RION data format. When exchanging data between nodes in a distributed system it is beneficial to encode that data using a fast, compact and versatile data format. RION is such a data format. Here are some of the key properties of RION:
- Fast to read and write
- Versatile - can represent:
- Binary data
- Numeric data
- UTF-8 data
- UTC data
- Single field
- Stream of fields
- Objects with key + value pairs (property name + property value)
- Compact tabular data - like CSV files.
- Compact tree dat.
- Acyclic object graphs
- Cyclic object graphs - Object and Table reference fields.
- Self describing - no schemas needed.
- Easy to parse directly in binary form (for highest speed).
- Arbitrary hierarchical navigation (for partial parsing - and highest speed).
- Possible to deserialize RION to Java objects, or serialize Java objects to RION.
RION Ops for Java contains tools for working with RION directly in its binary (raw) form, as well as for turning RION into Java objects, and Java objects into RION. In either mode, the tools are designed to give you as much flexibility and as high performance as possible.
Reading and Writing RION in Binary Format
Working with RION in its binary (raw) form is faster than first deserializing it into a Java object, and serializing it back into RION when you are done. First of all you save the object allocation and garbage collection later. Second, you can skip over RION fields of a record you may not need, so you don't waste time parsing these fields.
RION Ops for Java contains two components that let you work with RION in is raw, binary form:
Turning RION into Objects and Back
RION Ops also has tools for reading RION into Java objects, and writing Java objects into RION. These classes are:
RION Ops for Java GitHub Repository
The RION Ops for Java GitHub repository can be found here:
RION Ops For Java Maven Dependency
The easiest way to use RION Ops for Java is via Maven. Here is an example of how the Maven dependency should look in your project:
<dependency> <groupId>com.nanosai</groupId> <artifactId>rion-ops</artifactId> <version>0.11.0</version> </dependency>
Remember to replace the version number with the version you plan to use!