The appCORE SDK consists of the following major sections.

Functions in the core* section are used to configure appCORE features and initialize and de-initialize appCORE. Configuration is handled by the Specification Data Type (SDT) coreSPEC_t or via a configuration file.

Functions in the coreApp* section are related to the the user's application. Functions are provided to start and stop the application, and to dispatch or forward messages to the application's main Serial Dispatch Queue. In the normal appCORE process, the main thread is parked waiting for the application thread to exit. The coreAppWaitOnStop() function is used for this. This function provides a local command console if enabled.

Functions in the coreThead* section are used to manage threads in an appCORE system. Functions are provided to start and stop threads, join with threads, dispatch or forward messages to a thread's Serial Dispatch Queue, and to allow an external thread to attach and detach to the appCORE framework. Network sockets may be added and removed from a thread that has been created with Input/Output handler functions.

The coreMulticore* functions are used to start and stop a multicore processing element, and dispatch or forward application messages to a multicore processing element. The multicore processing element extends the standard appCORE thread configuration to include a Message-To-Processor Core router function. The Multicore element allows messages to be routed to specific cores if required.

The message functions are used to manipulate appCORE messages. Functions are available to create, duplicate, free, and broadcast messages, to set and clear message flags, and to transmit and receive messages over sockets.

appCORE timers are message based and use Thread Specific Callback (TSC) functions. Functions are available to start and cancel timers. Timers can be canceled at any time.

The request/response function pairs provide the mechanism to dispatch a message to a Serial Dispatch Queue thread and wait for the response. The response can either be a status value (unsigned int) or an appCORE message. This powerful facility allows the creation of process wide server threads.

appCORE has event reporting for normal operations and extensive thread aware logging and trace support for debugging. There is a single function, coreSyslog() for event reporting. How coreSyslog() operates is configured via the coreSPEC_t SDT passed to the coreInit() function. The remaining functions are concerned with debug tracing and the control of trace zones and levels.

The configuration interface is used to access the file based parameters. The name of the configuration file is configured via the coreSPEC_t SDT passed to the coreInit() function. The configuration operates on Name-Value pairs. The configuration file is a simple text file.

appCORE's networking subsystem implements a complete client server and communications architecture. This subsystem utilizes appCORE's Thread Specific Callbacks (TSC) to enable user code to avoid any threading or network socket issues. Functions are provided to configure appCORE to listen for and accept incoming connections, initiate outbound connections and exchange data with optional flow control.

appCORE provides an implementation of a map. This is the same map internal appCORE uses and it makes use of the Small Container Library (SCL-1.0.2) by Douglas Jerome.