Design Goals

In order for the API to fulfill it’s purpose it must be designed from the beginning with the following goals in mind.

 

The API must be designed so that functional modules are independent and can evolve separately. Modules are important for the Evolution strategy goal.

To be more Universal, the API will be written in the C language due to existent support of most programming languages in calling C functions thanks to the C simple (or not existent) name mangling. Most systems (if not all) provide support for the C language and the C standard library. The C Language can also fulfill the Performance strategy goal since the overhead is lower.

The API will use the concept of baselines for both the supported platform/OS and the services it provides to clients. The usage of baselines targets the Evolution and Platform independence strategy goals.

The character set for the API interfaces shall be UTF-8 which is in line with the Regular strategy goal.

The API will support the ability to get relevant error information and to access raw system facilities whenever possible. Such introspection can help provide more robustness and, consequently, help in the fulfillment of the Security strategy goal.