Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Plug-in (computing)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Software component that extends the functionality of existing software}} {{More citations needed|date=September 2019}} [[File:Mozilla plugins screenshot without subpixel rendering.png|thumb|[[Mozilla Firefox]] displaying a list of installed plug-ins]] {{Wiktionary|plug-in|add-on}} In [[computing]], a '''plug-in''' (or '''plugin''', '''add-in''', '''addin''', '''add-on''', or '''addon''') is a [[software component]] that extends the functionality of an existing [[software system]] without requiring the system to be [[software build|re-built]]. A plug-in [[software feature|feature]] is one way that a system can be [[customizable]].<ref>{{Cite web|last=Sterne|first=Jonathan|date=|title=Plug-in {{!}} software|url=https://www.britannica.com/technology/plug-in|access-date=2021-02-05|website=Encyclopedia Britannica|language=en}}</ref> Applications support plug-ins for a variety of reasons including: * Enable [[third-party developer]]s 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 license]]s ==Examples== Examples of plug-in use for various categories of applications: <!-- Only list (in alphabetic order) items that have explicit call-out of plug-in architecture in their Wikipedia article --> * [[Digital audio workstation]]s and [[audio editing software]] use [[audio plug-in]]s to generate, process or analyze sound. [[Ardour (software)|Ardour]], [[Audacity (audio editor)|Audacity]], [[Cubase]], [[FL Studio]], [[Logic Pro|Logic Pro X]] and [[Pro Tools]] are examples of such systems. * [[Email client]]s use plug-ins to decrypt and encrypt email. [[Pretty Good Privacy]] is an example of such plug-ins. * [[Video game console emulator]]s often use plug-ins to modularize the separate subsystems of the devices they seek to emulate.<ref>{{Cite web|url=https://pcsx2.net/download/category/41-win-plugins.html|title=PCSX2 - The Playstation 2 emulator - Plugins|website=pcsx2.net|language=en-gb|access-date=2018-06-10|archive-date=2018-01-25|archive-url=https://web.archive.org/web/20180125215009/https://pcsx2.net/download/category/41-win-plugins.html|url-status=dead}}</ref><ref>{{Cite web|url=http://www.pbernert.com/html/gpu.htm|title=Pete's PSX GPU plugins|last=Bernert|first=Pete|website=www.pbernert.com|access-date=2018-06-10}}</ref><ref>{{Cite web|url=http://demul.emulation64.com/downloads/|title=DEMUL - Sega Dreamcast Emulator for Windows|last=Team|first=Demul|website=demul.emulation64.com|access-date=2018-06-10}}</ref><ref>{{Cite web|url=https://wiki.jenkins.io/display/JENKINS/Android+Emulator+Plugin|title=Android Emulator Plugin - Jenkins - Jenkins Wiki|website=wiki.jenkins.io|access-date=2018-06-10}}</ref><ref>{{Cite web|url=https://github.com/KDE/dolphin-plugins|title=KDE/dolphin-plugins|website=GitHub|language=en|access-date=2018-06-10}}</ref><ref>{{Cite web|url=https://github.com/OpenEmu/SNES9x-Core|title=OpenEmu/SNES9x-Core|website=GitHub|language=en|access-date=2018-06-10}}</ref><ref>{{Cite news|url=http://emulation-general.wikia.com/wiki/Recommended_N64_Plugins|title=Recommended N64 Plugins|work=Emulation General Wiki|access-date=2018-06-10|language=en}}</ref><ref>{{Cite web|url=http://www.emulator-zone.com/doc.php/psx/psxplugins-tools.html|title=Playstation plugins & utilities!|website=www.emulator-zone.com|access-date=2018-06-10}}</ref><ref>{{Cite web|url=http://www.psx-place.com/categories/ps3-homebrew-apps-plugins-emulators.50/|title=PS3 Homebrew Apps / Plugins / Emulators {{!}} PSX-Place|website=www.psx-place.com|language=en-US|access-date=2018-06-10}}</ref> 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]] may do this. * Broadcasting and live-streaming software, like [[OBS Studio]], as an open source software utilizes plug-ins for user-specific needs. * [[Media player (software)|Media players]] use plug-ins to support file formats and apply filters. [[foobar2000]], [[GStreamer]], [[Quintessential Media Player|Quintessential]], [[Virtual Studio Technology|VST]], [[Winamp]], [[XMMS]] are examples of such media players. * [[Packet sniffer]]s use plug-ins to decode packet formats. [[OmniPeek]] is an example of such packet sniffers. * [[Remote sensing application]]s use plug-ins to process data from different sensor types; e.g., [[Opticks (Software)|Opticks]]. * [[Text editors]] and [[Integrated development environment]]s use plug-ins to support [[programming languages]] or enhance the development process ''e.g.'', [[Microsoft Visual Studio|Visual Studio]], [[RAD Studio]], [[Eclipse (computing)|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]]s have historically used [[executable]]s as plug-ins, though they are now mostly [[deprecation|deprecated]]. Examples include the [[Adobe Flash Player]], a [[Java virtual machine]] (for [[Java applets]]), [[QuickTime]], [[Microsoft Silverlight]] and the [[Unity (game engine)#Supported platforms|Unity Web Player]]. ([[Browser extension]]s, which are a separate type of installable module, are still widely in use.) <!-- Only list (in alphabetic order) items that have explicit call out of plug-in architecture in their Wikipedia article --> ==Mechanism== [[File:Plug-InExample.svg|325px|thumb|right|Example Plug-In Framework]] 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 (computing)|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.<ref name="amo-def">[https://addons.mozilla.org/en-US/firefox/browse/type:7 Mozilla Firefox plugins] β Description of the difference between Mozilla Firefox plugins and extensions under the general term ''add-on''.</ref><ref name="wordpress-def">[http://codex.wordpress.org/Plugin_API Wordpress Plug-in API] β Description of the Wordpress Plug-in architecture.</ref> Programmers typically implement plug-ins as [[Shared library|shared libraries]], which get [[Dynamic loading|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 (computing)|script]] files written in a [[scripting language]] like [[Python (programming language)|Python]] or [[Lua (programming language)|Lua]]. ==Helper application== In the context of a [[web browser]], a helper application is a separate program{{mdash}}like [[IrfanView]] or [[Adobe Reader]]{{mdash}}that extends the functionality of a browser.<ref>{{Cite web |title=Definition of helper application |url=https://www.pcmag.com/encyclopedia/term/helper-application |access-date=2022-10-25 |website=PCMAG |language=en}}</ref><ref>{{cite web |title=Download Irfan using Internet Explorer 4.x or above |url=https://libweb.hawaii.edu//digicoll/ttp/IrfanView/ie4.html |website=libweb.hawaii.edu |access-date=9 January 2024}}</ref> 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.<ref>{{cite web |title=Helper Applications and Plug-ins - Web Security, Privacy & Commerce, 2nd Edition [Book] |url=https://www.oreilly.com/library/view/web-security-privacy/0596000456/ch12s02.html |website=Web Security, Privacy, and Commerce 2nd Edition |publisher=O'Reilly |language=en}}</ref> ==History== In the mid-1970s, the [[EDT (Univac)|EDT]] [[text editor]] ran on the [[Unisys]] [[VS/9]] [[operating system]] for the [[UNIVAC Series 90]] [[mainframe computer]]. It allowed a program to be run from the editor, which can access the in-memory edit buffer.<ref>''EDT Text Editor Reference Manual'', [[Cinnaminson, New Jersey]]: [[Unisys Corporation]], 1975</ref> 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]] included plug-in capability in [[Digital Darkroom]] and [[SuperPaint (Macintosh)|SuperPaint]]. ==See also== * {{annotated link|Add-on (Mozilla)}} * {{annotated link|Applet}} * {{annotated link|Browser extension}} * {{annotated link|theme (computing)|Theme}} ==References== {{Reflist}} {{Web browsers}} {{Authority control}} {{DEFAULTSORT:Plug-In (Computing)}} [[Category:Application programming interfaces]] [[Category:Software add-ons|*]] [[Category:Technology neologisms]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Annotated link
(
edit
)
Template:Authority control
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Mdash
(
edit
)
Template:More citations needed
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Web browsers
(
edit
)
Template:Wiktionary
(
edit
)