Duda is a framework to create fast and solid web services on top of Monkey HTTP stack. All the interfaces are available in C language in a pseudo-object format.
All API calls or methods are grouped inside different objects, by default the objects are already initialized by the Duda core, no instance creation is required.
When developing a Web Application or Web Service with Duda, you will find two types of objects, those who are built-in into the core and the external objects called Packages.
The Core Objects expose interfaces for common routines such as parse requests, compose responses, manage cookies or sessions, read configuration files, etc. But in most of cases this is not enough and due to the implementation requirement will be required to connect to some database, work under a sub-protocol such as WebSockets or just some helpers to use JSON. This is when Packages join into the game.
A Package is an Object that is not known or initializated by Duda. It's an external component that can be used by the Web Application on-demand and it requires some special handling which includes to load the Package header file and the explicit call to duda_load_package(...) inside duda_main() to instance the object into the application.
Each Package documented here explains it owns requirements to be loaded successfully.