Plugin (computing)
   HOME

TheInfoList



OR:

In computing, 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. When a program supports plug-ins, it enables customization. A
theme Theme or themes may refer to: * Theme (arts), the unifying subject or idea of the type of visual work * Theme (Byzantine district), an administrative district in the Byzantine Empire governed by a Strategos * Theme (computing), a custom graphical ...
or skin 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 from an application because of incompatible software licenses. Types of applications and why they use plug-ins: * Digital audio workstations and audio editing software use audio plug-ins to generate, process or analyze sound. Ardour, Audacity, Cubase,
FL Studio FL Studio (previously known as FruityLoops before 2003) is a digital audio workstation (DAW) developed by the Belgian company Image-Line. FL Studio features a graphical user interface with a pattern-based music sequencer. The program is avail ...
,
Logic Pro X Logic Pro is a digital audio workstation (DAW) and MIDI sequencer software application for the macOS platform. It was originally created in the early 1990s as Notator Logic, or Logic, by German software developer C-Lab which later went by E ...
and Pro Tools are examples of such systems. * Email clients use plug-ins to decrypt and encrypt email. Pretty Good Privacy 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 The PlayStation 2 (PS2) is a home video game console developed and marketed by Sony Computer Entertainment. It was first released in Japan on 4 March 2000, in North America on 26 October 2000, in Europe on 24 November 2000, and in Australia on 3 ...
. * 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 Wi ...
use plug-ins to support file formats and apply filters.
foobar2000 foobar2000 (often abbreviated as fb2k or f2k) is a freeware audio player for Microsoft Windows, iOS and Android developed by Peter Pawłowski. It has a modular design, which provides user flexibility in configuration and customization. Stan ...
, GStreamer,
Quintessential Quintessence, or fifth essence, may refer to: Cosmology * Aether (classical element), in medieval cosmology and science, the fifth element that fills the universe beyond the terrestrial sphere * Quintessence (physics), a hypothetical form of da ...
,
VST VST may refer to: * Vancouver School of Theology, a theological graduate school in British Columbia, Canada * VST, Stockholm Västerås Airport in Sweden (IATA airport code) * Vehicle safety technology * Virtual Studio Technology, Steinberg's stand ...
, Winamp,
XMMS X Multimedia System (XMMS) is an audio player (software), audio player for Unix-like systems released under a free software license. History XMMS was originally written as ''X11Amp'' by Peter and Mikael Alm in November 1997. The player was made t ...
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 application A remote sensing software is a software application that processes remote sensing data. Remote sensing applications are similar to graphics software, but they enable generating geographic information from satellite and airborne sensor data. Remote ...
s use plug-ins to process data from different sensor types; ''e.g.'', Opticks. *
Text editors A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be us ...
and Integrated development environments use plug-ins to support programming languages or enhance the development process ''e.g.'', Visual Studio,
RAD Studio Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, ...
,
Eclipse An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
, 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 Visual Studio Tools for Applications (VSTA) is a set of tools that independent software vendors (ISVs) can use to build customization abilities into their applications for both automation and extensibility. Those customization abilities can be used ...
. * Web browsers have historically used
executable In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instruction (computer science), instructi ...
s as plug-ins, though they are now mostly deprecated. Examples include the Adobe Flash Player, a
Java virtual machine A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
(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 a ...
),
QuickTime QuickTime is an extensible multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. Created in 1991, the latest Mac version, QuickTime X, is avai ...
, 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 extension A browser extension is a small software module for customizing a web browser. Browsers typically allow a variety of extensions, including user interface modifications, cookie management, ad blocking, and the custom scripting and styling of web p ...
s, 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 Protocol may refer to: Sociology and politics * Protocol (politics), a formal agreement between nation states * Protocol (diplomacy), the etiquette of diplomacy and affairs of state * Etiquette, a code of personal behavior Science and technology ...
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
– Description of the difference between Mozilla Firefox plugins and extensions under the general term ''add-on''.
Wordpress Plug-in API
– 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 subr ...
, 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 handw ...
files written in a scripting language 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 Extension, extend or extended may refer to: Mathematics Logic or set theory * Axiom of extensionality * Extensible cardinal * Extension (model theory) * Extension (predicate logic), the set of tuples of values that satisfy the predicate * E ...
" 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 In European bestiaries and legends, a basilisk ( or ) is a legendary reptile reputed to be a serpent king, who causes death to those who look into its eyes. According to the ''Naturalis Historia'' of Pliny the Elder, the basilisk of Cyrene is ...
, keep supporting (NPAPI) plug-ins.


History

In the mid 1970s, the EDT text editor ran on the Unisys
VS/9 VS/9 is a computer operating system for the UNIVAC Series 90 mainframes (90/60, 90/70, and 90/80), used during the late 1960s through 1980s. The 90/60 and 90/70 were repackaged Univac 9700 computers. After the RCA acquisition by Sperry, it was ...
operating system using the
UNIVAC Series 90 The Univac 90/60 system front panel The Univac Series 90 is an obsolete family of mainframe class computer systems from UNIVAC first introduced in 1973. The low end family members included the 90/25, 90/30 and 90/40 that ran the OS/3 operating s ...
mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterpris ...
. 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 ...
:
Unisys Corporation Unisys Corporation is an American multinational information technology (IT) services and consulting company headquartered in Blue Bell, Pennsylvania. It provides digital workplace solutions, cloud, applications, and infrastructure solutions, e ...
, 1975
The plug-in executable could call the editor to inspect and change the text. The University of Waterloo Fortran compiler used this to allow interactive compilation of Fortran programs. Early personal computer software with plug-in capability included HyperCard and QuarkXPress on the Apple Macintosh, both released in 1987. In 1988,
Silicon Beach Software Silicon Beach Software, Inc., was an early American developer of software products for the Macintosh personal computer. It was founded in San Diego, California in 1984 by Charlie Jackson and his wife Hallie. Jackson later co-founded FutureWave So ...
included plug-in capability in
Digital Darkroom {{More citations needed, date=May 2008 Digital "darkroom" is the hardware, software and techniques used in digital photography that replace the darkroom equivalents, such as enlarging, cropping, dodging and burning, as well as processes that don't ...
and SuperPaint.


See also

* Applet *
Browser extension A browser extension is a small software module for customizing a web browser. Browsers typically allow a variety of extensions, including user interface modifications, cookie management, ad blocking, and the custom scripting and styling of web p ...


References

{{DEFAULTSORT:Plug-In (Computing) Application programming interfaces * Technology neologisms