Electron (software framework)


Electron is an open-source software framework developed and maintained by GitHub. It allows for the development of desktop GUI applications using web technologies: it combines the Chromium rendering engine and the Node.js runtime. Electron is the main GUI framework behind several notable open-source projects including Atom, GitHub Desktop, Light Table, Visual Studio Code, and WordPress Desktop.

Architecture

Electron applications are composed of multiple processes. There is the "browser" process and several "renderer" processes. The browser process runs the application logic, and can then launch multiple renderer processes, rendering the windows that appear on a user's screen rendering HTML and CSS.
Both the browser and renderer processes can run with Node.js integration if enabled.
Most of Electron's APIs are written in C++ or Objective-C and then exposed directly to the application code through JavaScript bindings.

Security

Because Electron applications are web applications running in the Chromium engine, they may be vulnerable to web-related attacks such as cross-site scripting attacks, through the same attack vectors as a browser or other internal components if using certain versions of Electron. Examples of such vulnerabilities have been fixed in the 1.7.13, 1.8.4, and 2.0.0-beta.5 Electron releases.

Criticism

Electron applications have been criticized for containing very significant overhead due to their Chromium dependency, especially when their performance is compared to that of similar native applications.

Versions

Software using Electron

A number of desktop applications are built with Electron including:

Electron.NET

On October 27, 2017, the community released a port called for the.NET Core framework. This is an open source project that enables native Electron APIs using the C# programming language. The.NET developer remains in their usual ecosystem, rather than using JavaScript.