HOME

TheInfoList



OR:

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, e ...
, a plug-in (or plugin, add-in, addin, add-on, or addon) is a
software component Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a give ...
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 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 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 manager A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They work in conjunction ...
s).


Purpose and examples

Applications may support plug-ins to: * enable
third-party developer A video game developer is a broad term for a software developer specializing in video game development – the process and related disciplines of creating video games. A game developer can range from one person who undertakes all tasks to a large ...
s 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 comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
from an application because of incompatible
software license A software license is a legal instrument (usually by way of contract law, with or without printed material) governing the use or redistribution of software. Under United States copyright law, all software is copyright protected, in both source ...
s. 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 Sound recording and reproduction, recording, editing and producing audio files. DAWs come in a wide variety of configurations from a single software pro ...
s and audio editing software use
audio plug-in An audio plug-in, in computer software, is a plug-in that can add or enhance audio-related functionality in a computer program. Such functionality may include digital signal processing or sound synthesis. Audio plug-ins usually provide their o ...
s to generate, process or analyze sound. Ardour, Audacity,
Cubase Cubase is a digital audio workstation (DAW) developed by Steinberg for music and MIDI recording, arranging and editing. The first version, which was originally only a MIDI sequencer and ran on the Atari ST computer, was released in 1989. Cut-dow ...
, FL Studio,
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 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-productio ...
are examples of such systems. *
Email client An email client, email reader or, more formally, message user agent (MUA) or mail user agent is a computer program used to access and manage a user's email. A web application which provides message management, composition, and reception functio ...
s 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 partition ...
is an example of such plug-ins. *
Video game console emulator A video game console emulator is a type of emulator that allows a computing device to emulate a video game console's hardware and play its games on the emulating platform. More often than not, emulators carry additional features that surpass ...
s often use plug-ins to modularize the separate subsystems of the devices they seek to emulate. For example, the
PCSX2 PCSX2 is a free and open-source PlayStation 2 emulator for Windows, Linux, and macOS that supports a wide range of PlayStation 2 video games with a high level of compatibility and functionality. Although PCSX2 can closely mirror the original gam ...
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 In computer graphics, graphics software refers to a program or collection of programs that enable a person to manipulate images or models visually on a computer. Computer graphics can be classified into two distinct categories: raster graphics a ...
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 GStreamer is a pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one format, processes them, ...
,
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 Winamp is a media player for Microsoft Windows originally developed by Justin Frankel and Dmitry Boldyrev by their company Nullsoft, which they later sold to AOL in 1999 for $80 million. It was then acquired by Radionomy in 2014. Sinc ...
,
XMMS X Multimedia System (XMMS) is an 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 to resemble Winamp, which ...
are examples of such media players. *
Packet sniffer A packet analyzer, also known as packet sniffer, protocol analyzer, or network analyzer, is a computer program or computer hardware such as a packet capture appliance, that can intercept and log traffic that passes over a computer network or ...
s use plug-ins to decode packet formats.
OmniPeek Omnipeek is a packet analyzer software tool from Savvius, a LiveAction company, for network troubleshooting and protocol analysis. It supports an application programming interface (API) for plugins. History Savvius (formerly WildPackets) was ...
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 ''Opticks: or, A Treatise of the Reflexions, Refractions, Inflexions and Colours of Light'' is a book by English natural philosopher Isaac Newton that was published in English in 1704 (a scholarly Latin translation appeared in 1706). (''Optick ...
. *
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 u ...
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 A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
or enhance the development process ''e.g.'',
Visual Studio Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platfor ...
,
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 IntelliJ IDEA is an integrated development environment (IDE) written in Java (programming language), Java for developing computer software written in Java, Kotlin (programming language), Kotlin, Groovy (programming language), Groovy, and other ...
, jEdit and
MonoDevelop MonoDevelop (also known as Xamarin Studio) is an open-source integrated development environment for Linux, macOS, and Windows. Its primary focus is development of projects that use Mono and .NET Framework. MonoDevelop integrates features similar t ...
support plug-ins. Visual Studio itself can be plugged into other applications via
Visual Studio Tools for Office Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in (project templates) and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the .NET Fra ...
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 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
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 In several fields, especially computing, deprecation is the discouragement of use of some terminology, feature, design, or practice, typically because it has been superseded or is no longer considered efficient or safe, without completely removing ...
. Examples include the
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is Software, computer software for viewing multimedia contents, executing rich Internet applications, and streaming media, streaming audio and vide ...
, 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 Microsoft Silverlight is a discontinued application framework designed for writing and running rich web applications, similar to Adobe Inc., Adobe's Run time environment, runtime, Adobe Flash. A plugin for Silverlight is still available for a v ...
and the Unity Web Player. (
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 technolog ...
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 su ...
, which get dynamically loaded at run time.
HyperCard HyperCard is a software application and development kit for Apple Macintosh and Apple IIGS computers. It is among the first successful hypermedia systems predating the World Wide Web. HyperCard combines a flat-file database with a graphical, f ...
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 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 scripting ...
like
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
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 The Mozilla Foundation (stylized as moz://a) is an American non-profit organization that exists to support and collectively lead the open source Mozilla project. Founded in July 2003, the organization sets the policies that govern development, ...
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 manager A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...
s, install, update and manage extensions. The term, "plug-in", however, strictly refers to
NPAPI Netscape Plugin Application Programming Interface (NPAPI) was an application programming interface (API) of the web browsers that allows plugins to be integrated. Initially developed for Netscape browsers, starting in 1995 with Netscape Navigato ...
-based web content renderers. Mozilla deprecated plug-ins for its products. But UXP-based applications, like web browsers
Pale Moon Pale Moon is an open-source web browser with an emphasis on customization; its motto is "Your browser, Your way". There are official releases for Microsoft Windows and Linux, as well as contributed builds for various platforms. Pale Moon origi ...
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 i ...
, keep supporting (NPAPI) plug-ins.


History

In the mid 1970s, the EDT
text editor 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 ...
ran on the
Unisys 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 ...
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 ...
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
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: Unisys Corporation, 1975 The plug-in executable could call the editor to inspect and change the text. The
University of Waterloo The University of Waterloo (UWaterloo, UW, or Waterloo) is a public research university with a main campus in Waterloo, Ontario Waterloo is a city in the Canadian province of Ontario. It is one of three cities in the Regional Municipality ...
Fortran compiler used this to allow interactive compilation of Fortran programs. Early personal computer software with plug-in capability included HyperCard and
QuarkXPress QuarkXPress is a desktop publishing software for creating and editing complex page layouts in a WYSIWYG (What You See Is What You Get) environment. It runs on macOS and Windows. It was first released by Quark, Inc. in 1987 and is still owned and ...
on the
Apple Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software en ...
, 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 S ...
included plug-in capability in Digital Darkroom and
SuperPaint SuperPaint was a pioneering graphics program and framebuffer computer system developed by Richard Shoup at Xerox PARC. The system was first conceptualized in late 1972 and produced its first stable image in April 1973. SuperPaint was among the e ...
.


See also

*
Applet In computing, an applet is any small application that performs one specific task that runs within the scope of a dedicated widget engine or a larger program, often as a plug-in. The term is frequently used to refer to a Java applet, a program w ...
*
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