Overview

The Addon Interfaces Library, libaoi.so, contains functions for accessing addon interfaces.
An addon is an implementation of a set of interfaces that provide some new functionality and that can be
dynamically loaded and unloaded by an application. An interface is a group of related functions and data.
By using a known set of interfaces, you can add functionality to deployed applications without having to recompile and
redeploy them. Addons are typically contained in DLLs and are sometimes called plugins.

This approach to dynamically adding functionality is different from simply loading a DLL at runtime using a function such as
dlopen() because the application doesn't have to know the specific functionality contained by the DLL ahead
of time. Rather, the application can search the DLL for a known interface and access that functionality if it's available.

Library components:

the basic elements (structures and functions) required to create and manage interfaces