Electron (formerly known as Atom Shell
) is a
free and open-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
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
. The framework is designed to create desktop applications using
web technologies
The World Wide Web (WWW), commonly known as the Web, is an information system enabling documents and other web resources to be accessed over the Internet.
Documents and downloadable media are made available to the network through web se ...
(mainly
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
,
CSS and
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
, 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 runtime environment. It also uses various
APIs
Apis or APIS may refer to:
* Apis (deity), an ancient Egyptian god
* Apis (Greek mythology), several different figures in Greek mythology
* Apis (city), an ancient seaport town on the northern coast of Africa
**Kom el-Hisn, a different Egyptian ci ...
to enable functionality such as native integration with Node.js services and an
inter-process communication module.
Electron was originally built for
Atom
Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons.
Every solid, liquid, gas ...
[ and is the main GUI framework behind several open-source projects including ]Atom
Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons.
Every solid, liquid, gas ...
, GitHub Desktop, Light Table, Visual Studio Code, WordPress
WordPress (WP or WordPress.org) is a free and open-source software, free and open-source content management system (CMS) written in PHP, hypertext preprocessor language and paired with a MySQL or MariaDB database with supported secure hypert ...
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
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
and CSS.
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++ 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 N ...
and are exposed directly to the application code through JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
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 h ...
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 h ...
release. The latest three stable version are support by the Electron team.[
]
Reception
Desktop applications built with Electron include Atom
Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons.
Every solid, liquid, gas ...
, balenaEtcher, Eclipse Theia,[ Microsoft Teams,] Slack
Slack may refer to:
Places
* Slack, West Yorkshire, a village in Calderdale, England
* The Slack, a village in County Durham, England
* Slack (river), a river in Pas-de-Calais department, France
* Slacks Creek, Queensland, a suburb of Logan City, ...
and Visual Studio Code. 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 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, Lin ...
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 applications as an alternative.
See also
* Apache Cordova
* Chromium Embedded Framework (CEF)
* HTML Application
* Qt WebEngine
* XULRunner
* JavaFX WebView
* DotNetBrowser
* Progressive web app
* Node.js
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