The Apex Malhar library (referenced as Apex library throughout this book) contains operators as well as APIs and other components that are useful to assemble applications and build customized operators (for example, stream codecs, partitioners, state management, and windowing support). The aim of the Apex library is to provide many common building blocks as readily usable (configurable, as opposed to having to write code).
Note
The Apex library is maintained as part of the Apache Apex project in its own repository: https://github.com/apache/apex-malhar (whereas the Apex core engine is under https://github.com/apache/apex-core). Releases of the Apex library and Apex core engine are made at different frequencies, mostly because operators, which are the functional building blocks for applications, receive more contributions and evolve at a faster pace than the core engine.
The API of the engine is designed so that development can be separated and new functionality added...