IOLink  IOL_v1.2.0_release
Features

IOLink capabilities, for now and future.

Now {#Now}

What is available in IOLink for now...

Basic types

IOLink provides some elementary containers: Vector, VectorX, Array, and VariantDataValue. And also some basic types to handle data: Region, RegionX, DataType, and Uri.

Handle multi-dimensional arrays

IOLink is able to handle all kinds of image data: 2D, volumetric, multispectral, video, etc.

Out of core support

Data don't need to be fully loaded in memory and can be accessed region by region from a file, in local or remote.

Simple to use

User code is significantly reduced when upgrading to IOLink. Readability is a core focus.

"How to store" has no impact on "How to access" for user

Users don't need to do specific conversion to read data, wherever data comes from and how it is encoded.

Improve safety

IOLink mechanisms should prevent users to do invalid operations. High-level methods are provided to support users in their data manipulation.

Thread safety

Initially, IOLink was designed for multithreaded environments. However, thread safety mechanisms are not active by default to avoid performances issues with some customer uses.

Binary compatibility

In the same major version of IOLink, binary compatibility is ensured to avoid symbol conflicts in a same application, and enable object sharing between different versions.

Nevertheless, there are some possible issues with different versions of IOLink loaded by different components of a same application. See the DLL issue chapter.

Interoperability

IOLink is interoperable with NumPy arrays (>= v1.17.4) for Python users.

Multi-resolution access

IOLink provides an interface for multi-resolution images.