
In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, ...
, a plug-in (or plugin, add-in, addin, add-on, or addon) is a
software component that adds a specific feature to an existing
computer program
A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components.
A computer progra ...
. When a program supports plug-ins, it enables customization.
A
theme or
skin
Skin is the layer of usually soft, flexible outer tissue covering the body of a vertebrate animal, with three main functions: protection, regulation, and sensation.
Other cuticle, animal coverings, such as the arthropod exoskeleton, have diffe ...
is a preset package containing additional or changed graphical appearance details, achieved by the use of a graphical user interface (GUI) that can be applied to specific software and websites to suit the purpose, topic, or tastes of different users to customize the look and feel of a piece of computer software or an operating system front-end GUI (and
window managers).
Purpose and examples
Applications may support plug-ins to:
* enable
third-party developers to extend an application
* support easily adding new features
* reduce the size of an application by not loading unused features
* separate
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
from an application because of incompatible
software licenses.
Types of applications and why they use plug-ins:
*
Digital audio workstation
A digital audio workstation (DAW) is an electronic device or application software used for recording, editing and producing audio files. DAWs come in a wide variety of configurations from a single software program on a laptop, to an integra ...
s and
audio editing software use
audio plug-ins to generate, process or analyze sound.
Ardour,
Audacity,
Cubase,
FL Studio,
Logic Pro X and
Pro Tools
Pro Tools is a digital audio workstation (DAW) developed and released by Avid Technology (formerly Digidesign) for Microsoft Windows and macOS. It is used for music creation and production, sound for picture ( sound design, audio post-prod ...
are examples of such systems.
*
Email clients use plug-ins to decrypt and encrypt email.
Pretty Good Privacy
Pretty Good Privacy (PGP) is an encryption program that provides cryptographic privacy and authentication for data communication. PGP is used for signing, encrypting, and decrypting texts, e-mails, files, directories, and whole disk part ...
is an example of such plug-ins.
*
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.
*
Graphics software use plug-ins to support file formats and process images. A
Photoshop plug-in
Photoshop plugins (or plug-ins) are add-on programs aimed at providing additional image effects or performing tasks that are impossible or hard to fulfill using Adobe Photoshop alone. Plugins can be opened from within Photoshop and several other im ...
may do this.
*
Media players
A media player could refer to:
*Digital media player, home appliances that play digital media
*Media player software, software that plays digital media
*Portable media player, portable hardware that plays digital media
*Windows Media Player, softwa ...
use plug-ins to support file formats and apply filters.
foobar2000,
GStreamer,
Quintessential,
VST,
Winamp,
XMMS are examples of such media players.
*
Packet sniffers use plug-ins to decode packet formats.
OmniPeek is an example of such packet sniffers.
*
Remote sensing applications use plug-ins to process data from different sensor types; ''e.g.'',
Opticks.
*
Text editors and
Integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
s use plug-ins to support
programming languages or enhance the development process ''e.g.'',
Visual Studio,
RAD Studio,
Eclipse,
IntelliJ IDEA,
jEdit and
MonoDevelop support plug-ins. Visual Studio itself can be plugged into other applications via
Visual Studio Tools for Office and
Visual Studio Tools for Applications.
*
Web browser
A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
s have historically used
executables as plug-ins, though they are now mostly
deprecated. Examples include the
Adobe Flash Player, a
Java virtual machine (for
Java applets
Java applets were small applications written in the Java programming language, or another programming language that compiles to Java bytecode, and delivered to users in the form of Java bytecode. The user launched the Java applet from ...
),
QuickTime,
Microsoft Silverlight and the
Unity Web Player
Unity is a cross-platform game engine developed by Unity Technologies, first announced and released in June 2005 at Apple Worldwide Developers Conference as a Mac OS X game engine. The engine has since been gradually extended to support a var ...
. (
Browser extensions, which are a separate type of installable module, are still widely in use.)
Mechanism

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.
[Mozilla Firefox plugins](_blank)
– Description of the difference between Mozilla Firefox plugins and extensions under the general term ''add-on''.[Wordpress Plug-in API](_blank)
– Description of the Wordpress Plug-in architecture.
Programmers typically implement plug-ins as
shared libraries
In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and su ...
, 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
Script may refer to:
Writing systems
* Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire
* Script (styles of handwriting)
** Script typeface, a typeface with characteristics of ha ...
files written in a
scripting language
A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.
A scripti ...
like
Python or
Lua
Lua or LUA may refer to:
Science and technology
* Lua (programming language)
* Latvia University of Agriculture
* Last universal ancestor, in evolution
Ethnicity and language
* Lua people, of Laos
* Lawa people, of Thailand sometimes referred t ...
.
Mozilla definition
In
Mozilla Foundation definitions, the words "add-on", "
extension" and "plug-in" are not synonyms. "Add-on" can refer to anything that extends the functions of a Mozilla application. Extensions comprise a subtype, albeit the most common and the most powerful one. Mozilla applications come with integrated add-on managers that, similar to
package managers, install, update and manage extensions. The term, "plug-in", however, strictly refers to
NPAPI-based web content renderers. Mozilla deprecated plug-ins for its products. But
UXP-based applications, like web browsers
Pale Moon and
Basilisk, keep supporting (NPAPI) plug-ins.
History
In the mid 1970s, the
EDT text editor ran on the
Unisys VS/9 operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
using the
UNIVAC Series 90 mainframe computer. It allowed a program to be run from the editor which can access the in-memory edit buffer.
[''EDT Text Editor Reference Manual'', ]Cinnaminson, New Jersey
Cinnaminson Township is a township in Burlington County, New Jersey, United States. Cinnaminson Township borders the Delaware River, and is an eastern suburb of Philadelphia. As of the 2010 United States Census, the township's population was 1 ...
: