Plug-ins are external programs that can be executed by Gwyddion to either perform some operation on the data or to read or write data in a third-party file format. In general, plug-ins are programs that can register themself within Gwyddion (for example printing something on standard output) to enable Gwyddion to create plug-in menu choice and can be used for data processing (or IO operation).

Generally it is preferable to extend Gwyddion functionality by modules, because modules are dynamic libraries linked directly to Gwyddion at run-time allowing much more versatile interaction with the application, and they are also faster (for the same reason). For example, plug-ins generally cannot make use of existing Gwyddion data processing functions and cannot modify data in-place, a new window is always created for the result. Programming of modules is also no harder than programming of plug-ins, maybe it is even easier (assuming you know C).


The plug-in mechanism is deprecated. It will remain supported in Gwyddion 2.x, however, it will not be extended or improved. The recommended method to extend Gwyddion by routines in another language is to use language bindings, at this moment a Python interface is available. The recommended method to run third-party programs is to write a small specialized C module that knows how to communicate with these programs.