As image processing libraries increase in size, it becomes progressively more difficult to build applications which present the library facilities to the user. Every time a new function is added, every user interface needs to be adapted -- a job which can rapidly become unmanageable.
To address this problem, VIPS includes a simple database which stores an abstract description of every image processing function. User interfaces, rather than having special code wired into them for each function, can simply interrogate the database and present what they find to the user.
The function database is extensible. You can define new functions, and even new types, and add them to VIPS. These new functions will then automatically appear in all VIPS user interfaces with no extra programming effort. These new functions can be loadable modules, added to running programs on demand. These modules are called plug-ins.