HOME

TheInfoList



OR:

Electron (formerly known as Atom Shell) is a
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
software framework In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard ...
developed and maintained by GitHub. The framework is designed to create desktop applications using web technologies (mainly HTML,
CSS Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone technolo ...
and JavaScript, although other technologies such as front-end frameworks and Web Assembly are possible) that are rendered using a version of the Chromium browser engine and a back end using the
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript cod ...
runtime environment. It also uses various APIs to enable functionality such as native integration with Node.js services and an inter-process communication module. Electron was originally built for Atom and is the main GUI framework behind several open-source projects including Atom, GitHub Desktop, Light Table,
Visual Studio Code Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by Microsoft with the Electron Framework, for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code complet ...
, WordPress Desktop and Eclipse Theia.


Architecture

Electron applications include a "main" process and several "renderer" processes. The main process runs the logic for the application (e. g. menus, shell commands, lifecycle events), and can then launch multiple renderer processes by instantiating an instance of the class, which loads a window that appears on the screen by rendering HTML and
CSS Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone technolo ...
. Both the main and renderer processes can run with Node.js integration if the field in the main process is set to . Most of Electron's APIs are written in
C++ C, or c, is the third letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''cee'' (pronounced ), plural ''cees''. History "C" ...
or
Objective-C Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXTS ...
and are exposed directly to the application code through JavaScript bindings.


History

In September 2021, Electron moved to an eight-week release cycle between major versions to match the release cycle of
Chromium Chromium is a chemical element with the symbol Cr and atomic number 24. It is the first element in group 6. It is a steely-grey, lustrous, hard, and brittle transition metal. Chromium metal is valued for its high corrosion resistance and hardne ...
Extended Stable and to comply with a new requirement from the Microsoft Store that requires browser-based apps to be within two major versions of the latest release of the browser engine. Electron frequently releases new major versions along every other
Chromium Chromium is a chemical element with the symbol Cr and atomic number 24. It is the first element in group 6. It is a steely-grey, lustrous, hard, and brittle transition metal. Chromium metal is valued for its high corrosion resistance and hardne ...
release. The latest three stable version are support by the Electron team.


Reception

Desktop applications built with Electron include Atom, balenaEtcher, Eclipse Theia, Microsoft Teams, Slack and
Visual Studio Code Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by Microsoft with the Electron Framework, for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code complet ...
. Brave Browser was based on Electron before it was rewritten to use Chromium directly. The most common criticism of Electron is that it necessitates
software bloat Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory, disk space or processing power, or have higher hardware requirements than the previous version, while making only dubious us ...
when used for simple programs. As a result,
Michael Larabel Phoronix Test Suite (PTS) is a free and open-source benchmark software for Linux and other operating systems which is developed by Michael Larabel and Matthew Tippett. The Phoronix Test Suite has been endorsed by sites such as Linux.com, Linu ...
has referred to the framework as "notorious among most Linux desktop users for being resource heavy, not integrating well with most desktops, and generally being despised." Meanwhile, Joey Sneddon states that this tradeoff is sensible as Electron greatly lowers the cost of developing and maintaining cross-platform software. Researchers have shown that Electron's large feature set can be hijacked by malicious software because it is accessed through plaintext JavaScript files. Those who are concerned that Electron is not always based on the newest version of Chromium have recommended
progressive web application A progressive web application (PWA), commonly known as a progressive web app, is a type of application software delivered through the web, built using common web technologies including HTML, CSS, JavaScript, and WebAssembly. It is intended to wor ...
s as an alternative.


See also

*
Apache Cordova Apache Cordova (formerly PhoneGap) is a mobile application development framework created by Nitobi. Adobe Systems purchased Nitobi in 2011, rebranded it as PhoneGap, and later released an open-source version of the software called Apache Cordova. ...
*
Chromium Embedded Framework The Chromium Embedded Framework (CEF) is an open-source software framework for embedding a Chromium web browser within another application. This enables developers to add web browsing functionality to their application, as well as the ability to ...
(CEF) * HTML Application * Qt WebEngine * XULRunner * JavaFX WebView *
DotNetBrowser DotNetBrowser is a proprietary .NET library that provides a Chromium-based engine which can be used to load and display web pages. It is developed and supported by TeamDev since 2015. Features Some main features are as follows: * Load and displa ...
*
Progressive web app A progressive web application (PWA), commonly known as a progressive web app, is a type of application software delivered through the web, built using common web technologies including HTML, CSS, JavaScript, and WebAssembly. It is intended to w ...
*
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript cod ...


References


External links

* {{Microsoft FOSS 2013 software Cross-platform desktop-apps development Cross-platform software Free and open-source software GitHub Google Chrome Microsoft free software Software using the MIT license