All Topics  
Plugin

 

   Email Print
   Bookmark   Link






 

Plugin



 
 
In computing
Computing

Computing is usually defined as the activity of using and developing computer technology, computer hardware and computer software. It is the computer-specific part of information technology....
, a plug-in (also: plugin, addin, add-in, addon, add-on, snap-in or snapin; but see also extension) consists of a computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
 that interacts with a host application
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
 (a web browser
Web browser

A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
 or an email client, for example) to provide a certain, usually very specific, function "on demand". Applications support plugins for many reasons. Some of the main reasons include:



Examples of applications and their plug-ins include:


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 (computing)

In computer science, a protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing endpoints....
 for the exchange of data with plug-ins.






Discussion
Ask a question about 'Plugin'
Start a new discussion about 'Plugin'
Answer questions from other users
Full Discussion Forum



Encyclopedia


In computing
Computing

Computing is usually defined as the activity of using and developing computer technology, computer hardware and computer software. It is the computer-specific part of information technology....
, a plug-in (also: plugin, addin, add-in, addon, add-on, snap-in or snapin; but see also extension) consists of a computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
 that interacts with a host application
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
 (a web browser
Web browser

A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
 or an email client, for example) to provide a certain, usually very specific, function "on demand". Applications support plugins for many reasons. Some of the main reasons include:

  • to enable third-party developers to create capabilities to extend an application
  • to support features yet unforeseen
  • to reduce the size of an application
  • to separate source code
    Source code

    In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
     from an application because of incompatible software licenses.


Examples of applications and their plug-ins include:

  • Rockbox
    Rockbox

    Rockbox is a free software replacement for the firmware held on various forms of digital audio players . Rockbox offers an alternative to the host device's operating system firmware which provides a plug-in architecture for adding various enhancements and functionality to DAPs which are not present in the original OS....
    , a firmware for digital audio player
    Digital audio player

    A digital audio player, more commonly referred to as an MP3 player, is a consumer electronics device that stores, organizes and plays audio file formats....
    s, can use plug-ins, for example: play games, use the text editor
  • Email clients use plug-ins to decrypt and encrypt email (Pretty Good Privacy
    Pretty Good Privacy

    Pretty Good Privacy is a computer program that provides cryptographic privacy and authentication. PGP is often used for signing, encrypting and decrypting e-mails to increase the security of e-mail communications....
    ) or to send oversized email attachments (Globalscape Mail Express)
  • Graphics software
    Graphics software

    In computer graphics, graphics software or image editing software is a computer program or collection of programs that enable a person to manipulate visual images on a computer....
     use plug-ins to support file formats and process images (Adobe Photoshop
    Adobe Photoshop

    Adobe Photoshop, or simply Photoshop, is a Graphics software developed and published by Adobe Systems. It is the current and primary Market dominance for commercial Raster graphics and manipulation, and is the flagship product of Adobe Systems....
    )
  • Media players use plug-ins to support file formats and apply filters (foobar2000
    Foobar2000

    foobar2000 is a freeware audio player for Microsoft Windows developed by Peter Pawlowski, a former freelance contractor for Nullsoft. It is known for its highly customizable Graphical user interface....
    , GStreamer
    GStreamer

    GStreamer is a Pipeline based multimedia framework written in the C with the type system based on GObject. GStreamer allows a programmer to create a variety of media-handling components, including simple Audio frequency playback, audio and video...
    , Quintessential, VST
    Virtual Studio Technology

    Steinberg's Virtual Studio Technology is an interface for integrating software Sound_recording_and_reproduction synthesizer and audio effect plugins with audio editors and hard-disk recording systems....
    , Winamp
    Winamp

    Winamp is a proprietary software media player written by Nullsoft, now a subsidiary of Time Warner. It is skin nable, multi-format freeware/shareware....
    , XMMS
    XMMS

    The X Multimedia System is a free software audio player very similar to Winamp, that runs on many Unix-like operating systems.History ...
    )
  • Packet sniffer
    Packet sniffer

    A packet analyzer is computer software or computer hardware that can intercept and log traffic passing over a digital telecommunications network or part of a network....
    s use plug-ins to decode packet formats (OmniPeek
    OmniPeek

    OmniPeek is a packet analysis platform from WildPackets that supports an extensive plugin API....
    )
  • Remote sensing application
    Remote sensing application

    A remote sensing application 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....
    s use plug-ins to process data from different sensor types (Opticks
    Opticks (software)

    Opticks is an Open source software, remote sensing application that supports , video , Synthetic aperture radar, Multi-spectral image, hyperspectral, and other types of remote sensing data....
    )
  • Software development environments
    Integrated development environment

    An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development....
     use plug-ins to support programming languages (Eclipse, jEdit
    JEdit

    jEdit is a text editor for programmers, available under the GNU General Public License....
    , MonoDevelop
    MonoDevelop

    MonoDevelop is an open source integrated development environment for the Linux platform, primarily targeted for the development of software that uses both the Mono and Microsoft .NET framework....
    )
  • Web browser
    Web browser

    A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
    s use plug-ins to play video and presentation formats (Flash
    Adobe Flash

    Adobe Flash is a multimedia Platform created by Macromedia and currently developed and distributed by Adobe Systems. Since its introduction in 1996, Flash has become a popular method for adding animation and interactivity to web pages; Flash is commonly used to create animation, advertisements, and various web page components, to integrate...
    , QuickTime
    QuickTime

    QuickTime is a multimedia framework developed by Apple Inc., capable of handling various formats of digital video, media clips, sound, text, animation, music, and QuickTime VRs....
    , Microsoft Silverlight
    Microsoft Silverlight

    Microsoft Silverlight is a programmable web browser plugin that enables features such as animation, vector graphics and multimedia that characterizes rich Internet applications....
    , 3DMLW
    3DMLW

    3DMLW is an XML standard file format for representing 3D computer graphics and 2-dimensional interactive web content on the World Wide Web. 3DMLW engine is open-source licensed under GPL....
    )
  • Some digital mixing console
    Digital mixing console

    In professional audio, a Digital Mixing Console , is an electronic device for combining, routing, and changing the dynamics of digital samples. The digital audio samples are summed to produce a combined output....
    s allow plug-ins to extend features such as reverberation effects, equalization and compression.
  • Some Web content management system
    Web content management system

    A web content management system is content management system software, usually implemented as a Web application, for creating and managing HTML content....
     use plug-ins to increase functionality.

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 (computing)

In computer science, a protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing endpoints....
 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.

Open application programming interface
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
s (APIs) provide a standard interface, allowing third parties to create plug-ins that interact with the host application. A stable API allows third-party plug-ins to continue to function as the original version changes and to extend the life-cycle of obsolete applications. The Adobe Photoshop
Adobe Photoshop

Adobe Photoshop, or simply Photoshop, is a Graphics software developed and published by Adobe Systems. It is the current and primary Market dominance for commercial Raster graphics and manipulation, and is the flagship product of Adobe Systems....
 and After Effects
Adobe After Effects

Adobe After Effects is a digital motion graphics and compositing software published by Adobe Systems. Its main purpose is for film and video post-production....
 plug-in APIs have become a standard and competing applications have adopted them to some extent. Other examples of such APIs include Audio Units
Audio Units

Audio Units are a system-level plug-in architecture provided by Core Audio in Mac OS X developed by Apple Computer. Audio Units are a set of application programming interface services provided by the operating system to generate, process, receive, or otherwise manipulate streams of audio in near-real-time with minimal latency....
 and VST
Virtual Studio Technology

Steinberg's Virtual Studio Technology is an interface for integrating software Sound_recording_and_reproduction synthesizer and audio effect plugins with audio editors and hard-disk recording systems....
.

Games and productivity applications often use plug-in architectures which allow original and third-party publishers to add functionality.

The Microsoft Flight Simulator
Microsoft Flight Simulator

Microsoft Flight Simulator is a flight simulator program for Microsoft Windows, marketed and often seen as a video game.One of the longest-running, best-known and most comprehensive home flight simulator series, Microsoft Flight Simulator was an early product in the Microsoft portfolio ? different from its other software which were...
 series has become well-known for its aircraft add-ons.

Outside software, a network
Computer network

A computer network is a group of interconnected computers. Networks may be classified according to a wide variety of characteristics. This article provides a general overview of some types and categories and also presents the basic components of a network....
 switch may ship with an unoccupied but non-standard port to accommodate various optional physical-layer connectors.

Outside software again, manufacturers can use plug-ins to create vendor lock-in
Vendor lock-in

In economics, vendor lock-in, also known as proprietary lock-in, or customer lock-in, makes a customer dependent on a vendor for Product s and Service , unable to use another vendor without substantial switching barriers....
 by limiting upgrade options solely to those available from or endorsed by the original manufacturer. IBM's Micro Channel Architecture
Micro Channel architecture

Micro Channel Architecture was a proprietary hardware 16-bit or 32-bit parallel communications computer bus created by International Business Machines in the 1980s for use on their new IBM Personal System/2 computers....
, technically superior to Industry Standard Architecture
Industry Standard Architecture

Industry Standard Architecture was a computer bus standard for IBM compatible computers....
 as a way to add components to IBM PCs, largely failed to gain wide support due to the difficulty in getting certification for third-party devices.

Plug-ins and extensions

Plug-ins differ slightly from extensions
Extension (computing)

A software extension is a computer program designed to be incorporated into another piece of software in order to enhance, or extend, the functionalities of the latter....
, which modify or add to existing functionality. Plug-ins generally rely on the host application's user interface
User interface

The user interface is the aggregate of means by which people—the User s—Interaction with the system—a particular machine, device, computer program or other complex tools....
 and have a well-defined boundary to their possible set of actions[https://addons.mozilla.org/en-US/firefox/browse/type:7]. Extensions have fewer restrictions on their actions, and may provide their own user-interfaces. Mozilla Firefox added support for extensions to help to decrease the size of the host application and to offer optional functions. Mozilla Firefox
Mozilla Firefox

Mozilla Firefox is a web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. Official versions are distributed under the terms of the proprietary EULA....
 and related software products use the term "Add-on" as an inclusive category of augmentation modules that consists of plug-ins, themes, search engines and a well-developed system which aims to reduce the feature creep
Creeping featurism

Feature creep is the proliferation of features in a product such as computer software. Extra features go beyond the basic function of the product and so can result in Baroque#Modern_usage over-complication rather than simple, elegant design....
 that plagued the Mozilla Application Suite
Mozilla Application Suite

The Mozilla Application Suite is a cross-platform integrated Internet suite. Its development was initiated by Netscape Communications Corporation, before their acquisition by AOL....
.

History

Plug-ins appeared as early as the mid 1970s, when the EDT
EDT text editor

There are at least two major text editors named EDT. One was made by Digital Equipment Corporation, the other by what was then Sperry Univac, which later became Unisys....
 text editor
Text editor

A text editor is a type of software application used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....
 running on the Unisys
Unisys

Unisys Corporation , based in Blue Bell, Pennsylvania, Pennsylvania, United States, and incorporated in Delaware, is a global provider of information technology services and programs....
 VS/9
VS/9

VS/9 was a computer operating system available for the Univac 90/60, 90/70 and 90/80 mainframe computer during the late 1960s through 1980s. It provided the capability to allow both interactive and batch operations on the same computer....
 operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 using the Univac 90/60
UNIVAC 90/60

The Univac 90/60 series computer was a Mainframe computer class computer manufactured by Sperry Corporation as a competitor to the IBM System 360 series of mainframe computers....
 series mainframe computer
Mainframe computer

Mainframes are computers used mainly by large organizations for critical applications, typically bulk data processing such as census, industry and consumer statistics, Enterprise Resource Planning, and financial transaction processing....
 provided the ability to run a program from the editor and to allow such program to access the editor buffer, thus allowing an external program to access an edit session in memory. The plug-in program could make calls to the editor to have it perform text-editing services upon the buffer that the editor shared with the plug-in. The Waterloo
University of Waterloo

The University of Waterloo is a comprehensive public university in the city of Waterloo, Ontario, Ontario, Canada. The school was founded in 1957 by Drs....
 Fortran compiler
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
 used this feature to allow interactive compilation of Fortran
Fortran

Fortran is a general-purpose programming language, procedural programming language, imperative programming language programming language that is especially suited to numerical analysis and scientific computing....
 programs edited by EDT.

Very early PC
Personal computer

A personal computer is any general-purpose computer whose original sales price, size, and capabilities make it useful for individuals, and which is intended to be operated directly by an end user, with no intervening computer operator....
 software applications to incorporate plug-in functionality included HyperCard
HyperCard

HyperCard was an application program created by Bill Atkinson for Apple Inc. that was among the first successful hypermedia systems before the World Wide Web....
 and QuarkXPress
QuarkXPress

QuarkXPress is a computer application for creating and editing complex page layouts in a WYSIWYG environment. It runs on Mac OS X and Microsoft Windows....
 on the Macintosh, both released in 1987. In 1988, Silicon Beach Software
Silicon Beach Software

Silicon Beach Software was an influential early developer of software for the Apple Macintosh personal computer. It was founded in San Diego, California by Charlie Jackson and his wife Hallie....
 included plug-in functionality in Digital Darkroom
Digital darkroom

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 have a film equivalent....
 and SuperPaint
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....
, and Ed Bomke coined the term plug-in.

, programmers typically implement plug-in functionality using shared libraries compulsorily installed in a place prescribed by the host application. 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.

Plug-in frameworks

Software developers can use the following plug-in frameworks (organized here by programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
) to add plug-in capability to their applications:

C++

  • - a dataflow renju Framework
  • - part of TrollTech's Qt Framework


Delphi



Java

  • (JPF), a plug-in mechanism adapted from Eclipse
    Eclipse (software)

    Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
    's plug-in mechanism from its pre-OSGi
    OSGi

    The OSGi Alliance is an open standards organization founded in March 1999. The Alliance and its members have specified a Java -based Service platform that can be remotely managed....
     era.
  • OSGi
    OSGi

    The OSGi Alliance is an open standards organization founded in March 1999. The Alliance and its members have specified a Java -based Service platform that can be remotely managed....
    , a standardized dynamic component system suited for plug-in programming, used in Eclipse
    Eclipse (software)

    Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
    , many commercial J2EE application servers, Spring Framework, and embedded applications.
  • Rich Client Platform
    Rich Client Platform

    A Rich Client Platform is software consisting of the following components:* A core , lifecycle manager* A standard bundling framework* A portable widget toolkit...
     (RCP), platform for applications adapted from Eclipse
    Eclipse (software)

    Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
     , applications are written as plug-ins and may themselves have further plug-ins


Python

  • , a plugin-in framework that takes inspiration from OSGi
    OSGi

    The OSGi Alliance is an open standards organization founded in March 1999. The Alliance and its members have specified a Java -based Service platform that can be remotely managed....
     and Eclipse
    Eclipse (software)

    Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
     RCP simplifying the concepts of both and adapting them to the Pythonic philosophy


.NET

  • .NET Based Plug-in Framework
  • - an add-in framework for .NET and Mono
  • - A Platform for Building Plug-in Systems Under .NET
  • Visual Assist
    Visual Assist

    Visual Assist is a plugin for Microsoft Visual Studio developed by Whole Tomato. It primarily enhances Intellisense and syntax highlighting. It also enhances code suggestions, refactoring options and spell checking support for comments....


See also


  • Applet
    Applet

    An applet is a software component that runs in the context of another program, for example a web browser. An applet usually performs a very narrow function that has no independent use....
  • Extension
    Extension (computing)

    A software extension is a computer program designed to be incorporated into another piece of software in order to enhance, or extend, the functionalities of the latter....
  • Shared library
    Library (computer science)

    In computer science, a library is a collection of subroutines or Class used to develop software. Libraries contain code and data that provide services to independent programs....