Look up plug-inor add-on in Wiktionary, the free dictionary.
In computing, a plug-in (also spelled plugin), add-in (also addin, add-on, or addon) or extension is a software component that extends the functionality of an existing software system without requiring the system to be re-built. A plug-in feature is one way that a system can be customizable.
Applications support plug-ins for a variety of reasons including:
Video game console emulators often use plug-ins to modularize the separate subsystems of the devices they seek to emulate. For example, the PCSX2 emulator makes use of video, audio, optical, etc. plug-ins for those respective components of the PlayStation 2.
The host application provides services which the plug-in can use, including a way for plug-ins to register themselves with the host application and a protocol for the exchange of data with plug-ins. Plug-ins depend on the services provided by the host application and do not usually work by themselves. Conversely, the host application operates independently of the plug-ins, making it possible for end-users to add and update plug-ins dynamically without needing to make changes to the host application.
Programmers typically implement plug-ins as shared libraries, which get dynamically loaded at run time. HyperCard supported a similar facility, but more commonly included the plug-in code in the HyperCard documents (called stacks) themselves. Thus the HyperCard stack became a self-contained application in its own right, distributable as a single entity that end-users could run without the need for additional installation-steps. Programs may also implement plug-ins by loading a directory of simple script files written in a scripting language like Python or Lua.
Helper application
How to install calibre plugin.
In the context of a web browser, a helper application is a separate program—like IrfanView or Adobe Reader—that extends the functionality of a browser. A helper application extends the functionality an application but unlike the typical plug-in that is loaded into the host application's address space, a helper application is a separate application. With a separate address space, the extension cannot crash the host application as is possible if they share an address space.