Glossary · 4 · Platform SDKs and extensions
Plug-in
Also known as: Plugin, Add-in, Add-on
German: Plug-in
In software engineering, a plug-in (also spelled plugin) is a separately developed and distributed software component that a host application discovers and loads at run time or build time to add functions at extension points the host defines, without changing the host's own code.
- Platform SDKs
- Publishing SDKs
In one sentence
A plug-in is a separately delivered component that a host application loads to add functions at defined extension points without changing the host.
Example
A company installs a DITA Open Toolkit plug-in that adds its corporate PDF layout; the toolkit's own files stay unchanged and can be upgraded separately.
How it applies
- Platform SDKs: The SDK of a host application (an IDE, a design tool, a business platform) describes the extension points, the lifecycle of a plug-in and the APIs it may call. The host calls the plug-in, not the other way round — an instance of inversion of control. Plug-ins are often declared in a manifest and distributed through a marketplace.
- Publishing SDKs: Publishing toolkits are extended in the same way. DITA Open Toolkit plug-ins add output formats, override stylesheets or insert processing steps through documented extension points; they are installed with
dita install. The DITA-OT project advises against editing the default plug-ins in place, because upgrades overwrite such changes. - Hardware SDKs: Drivers and device support packages are frequently delivered as plug-ins of an engineering tool or IDE.
- Security and stability: A plug-in runs with the rights the host grants it. Hosts restrict that through permissions, authorization scopes and sandboxing. Documentation should state what a plug-in can access and how it is updated or removed.
- Compatibility: A plug-in depends on the host's plug-in API and, for native code, on its application binary interface. Plug-in documentation should name the host versions it supports.
Plug-in vs. library
A software library is called by the application that includes it; a plug-in is called by the host that loads it. The host decides when the plug-in runs and through which interface. Both can be packaged the same way; the difference lies in who controls the flow.
Spelling
“Plug-in” and “plugin” are both in use. Many vendors write “plugin” (for example in package and file names), while DITA-OT documentation writes “plug-in”. A documentation set should choose one spelling and keep it, while product names keep the vendor's spelling.