Plug-in (computing): Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Removed unrelated example
No edit summary
 
(One intermediate revision by one other user not shown)
Line 4: Line 4:
{{Wiktionary|plug-in|add-on}}
{{Wiktionary|plug-in|add-on}}


In [[computing]], a '''plug-in''' (also spelled '''plugin''') or '''add-in''' (also '''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>
In [[computing]], a '''plug-in''' (also spelled '''plugin''') or '''add-in''' (also '''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:
Applications support plug-ins for a variety of reasons including:
Line 26: Line 26:
* [[Remote sensing application]]s use plug-ins to process data from different sensor types; e.g., [[Opticks (Software)|Opticks]].
* [[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]].
* [[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.)
* [[Web browser]]s have historically used [[executable]]s as plug-ins, though they all are [[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 -->
<!-- Only list (in alphabetic order) items that have explicit call out of plug-in architecture in their Wikipedia article -->


Line 54: Line 54:
{{Reflist}}
{{Reflist}}


{{Web browsers}}
{{Authority control}}
{{Authority control}}



Latest revision as of 01:31, 6 November 2025

Template:Short description Template:More citations needed

File:Mozilla plugins screenshot without subpixel rendering.png
Mozilla Firefox displaying a list of installed plug-ins

Template:Sister project

In computing, a plug-in (also spelled plugin) or add-in (also addin, add-on, or addon) is a software component that extends the functionality of an existing software system without requiring the system to be re-built. A plug-in feature is one way that a system can be customizable.[1]

Applications support plug-ins for a variety of reasons including:

Examples

Examples of plug-in use for various categories of applications:

Mechanism

File:Plug-InExample.svg
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 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.[10][11]

Programmers typically implement plug-ins as shared libraries, 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 files written in a scripting language like Python or Lua.

Helper application

In the context of a web browser, a helper application is a separate programTemplate:Mdashlike IrfanView or Adobe ReaderTemplate:Mdashthat extends the functionality of a browser.[12][13] 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.[14]

History

In the mid-1970s, the 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.[15] 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.

See also

References

Template:Reflist

Template:Authority control

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Mozilla Firefox plugins – Description of the difference between Mozilla Firefox plugins and extensions under the general term add-on.
  11. Wordpress Plug-in API – Description of the Wordpress Plug-in architecture.
  12. Script error: No such module "citation/CS1".
  13. Script error: No such module "citation/CS1".
  14. Script error: No such module "citation/CS1".
  15. EDT Text Editor Reference Manual, Cinnaminson, New Jersey: Unisys Corporation, 1975