Development

This section of the manual will discuss the ins and outs of building applications
using the libmtev APIs. There are many APIs in the system that can be used in
an isolated fashion but they are built atop each other.

Most parts of the system rely heavily on the facilities provided in
utils/.
The eventer/
takes care not to require the configuration API directly. Most other APIs in
the system have intricate interdependencies. Unless your use-cases for libmtev
are very sophisticated, you need not worry about these subtleties and can
simple use the APIs you need when you need them.

Many subsystems require explicit initialization before they are used and
some subsystem initializations require prior initialization of dependent
subsystems. This can cause a bit of boilerplate in your startup sequence
which will seem unnecessary at first, but when your application becomes
sufficiently complex you will appreciate it dearly.

For development reference purposes, libmtev source code contains a functional
example application that does very little but can be used as a template for
new applications.