Electron(旧称はAtom Shell)とはGitHubが開発と管理をしている、フリーでオープンソースなソフトウェアフレームワークである。Electronにより、ChromiumレンダリングエンジンとランタイムのNode.jsとを組み合わせたWeb技術を用いたデスクトップGUIアプリケーションの開発が可能となる。Electronは、Atom、GitHub Desktop、Light Table、Visual Studio Code、Evernote、およびWordPress Desktopなどのオープンソースプロジェクトの基盤となる中心的GUIフレームワークである。

## アーキテクチャ

Electronアプリケーションは複数プロセスで構成されており、1つの「メイン」プロセスと複数の「レンダラー」プロセスが存在する。メインプロセスがアプリケーションロジックを実行すると、レンダラープロセスを複数起動できるようになる。レンダラープロセスはユーザー画面に表示されるウインドウへ、HTMLやCSSをレンダリングする。

可能ならば、メインプロセスとレンダラープロセスは共にNode.jsと統合して起動できる。

ElectronのAPIは、ほとんどC++かObjective-Cで書かれており、JavaScriptバインディングを通じてアプリケーションコードに直接公開される。

## セキュリティ

ElectronアプリケーションはChromiumエンジンで起動するウェブアプリケーションである。そのため古いバージョンのElectronを使用してしまうと、ブラウザ(Chromiumなど)や他の内部コンポーネント (Node.js) と同じ攻撃ベクトルによるクロスサイトスクリプティングなどのウェブ関連攻撃に対して脆弱となる。前述の脆弱性は、Electronの1.7.13、1.8.4、および2.0.0-beta.5で修正されている。

## 批判

Electronアプリケーションは、類似した機能のネイティブアプリケーションよりも巨大なオーバーヘッドが発生してしまうことを批判されている。Electronでビルドされたアプリケーションは、オペレーティングシステムネイティブな技術でビルドされた類似のアプリケーションよりも大量のストレージとRAMを消費してしまうため、動作が遅くなる可能性が高い。代替案として、Chromiumをバンドルするのではなく、オペレーティングシステムに内蔵されたブラウザを使用する方法が記述されている。

## バージョン

| リリース | 状態 | リリース日付 | Chromiumのバージョン | Node.jsのバージョン |
| --- | --- | --- | --- | --- |
| 将来のリリース:v33.0.x | ナイトリービルド | TBD | 127 | 20.14 |
| 最新プレビュー版:v32.0.x | アルファ版 | TBD | 127 | 20.14 |
| 現行バージョン:v31.0.x | 最新版 | 2024-06-10 | 126 | 20.14 |
| サポート中:v30.1.x | サポート中 | 2024-04-16 | 124 | 20.11 |
| サポート中:v29.4.x | サポート中 | 2024-02-20 | 122 | 20.9 |
| サポート終了:v28.3.x | サポート終了 | 2023-12-05 | 120 | 18.18 |
| サポート終了:v27.3.x | サポート終了 | 2023-10-10 | 118 | 18.17 |
| サポート終了:v26.6.x | サポート終了 | 2023-08-15 | 114 | 18.15 |
| サポート終了:v25.9.x | サポート終了 | 2023-05-30 | 114 | 18.15 |
| サポート終了:v24.8.x | サポート終了 | 2023-04-04 | 112 | 18.14 |
| サポート終了:v23.3.x | サポート終了 | 2023-01-07 | 110 | 18.12 |
| サポート終了:v22.3.x | サポート終了 | 2022-11-29 | 108 | 16.17 |
| サポート終了:v21.4.x | サポート終了 | 2022-09-27 | 106 | 16.16 |
| サポート終了:v20.3.x | サポート終了 | 2022-08-01 | 104 | 16.15 |
| サポート終了:v19.1.x | サポート終了 | 2022-05-23 | 102 | 16.14 |
| サポート終了:v18.3.x | サポート終了 | 2022-03-29 | 100 | 16.13 |
| サポート終了:v17.4.x | サポート終了 | 2022-02-01 | 98 | 16.13 |
| サポート終了:v16.2.x | サポート終了 | 2021-11-16 | 96 | 16.9 |
| サポート終了:v15.5.x | サポート終了 | 2021-09-21 | 94 | 16.5 |
| サポート終了:v14.2.x | サポート終了 | 2021-08-30 | 93 | 14.17 |
| サポート終了:v13.0.x | サポート中 | 2021-05-25 | 91 | 14.16 |
| サポート終了:v12.2.x | サポート中 | 2021-03-02 | 89 | 14.16 |
| サポート終了:v11.5.x | サポート終了 | 2020-11-16 | 87 | 12.18 |
| サポート終了:v10.4.x | サポート終了 | 2020-08-25 | 85 | 12.16 |
| サポート終了:v9.4.x | サポート終了 | 2020-05-18 | 83 | 12.14 |
| サポート終了:v8.3.x | サポート終了 | 2020-02-04 | 80 | 12.13 |
| サポート終了:v7.3.x | サポート終了 | 2019-10-22 | 78 | 12.8 |
| サポート終了:v6.1.x | サポート終了 | 2019-07-29 | 76 | 12.4 |
| サポート終了:v5.1.x | サポート終了 | 2019-04-24 | 73 | 12.0 |
| サポート終了:v4.2.x | サポート終了 | 2018-12-20 | 69 | 10.11 |
| サポート終了:v3.1.x | サポート終了 | 2018-09-18 | 66 | 10.2 |
| サポート終了:v2.0.x | サポート終了 | 2018-05-01 | 61 | 8.9 |
| サポート終了:v1.8.x | サポート終了 | 2017-12-12 | 59 | 8.2 |

## Electronを利用したソフトウェア

以下のソフトウェアを含む、数多くのデスクトップアプリケーションがElectronで作られている。

- 1Password
- Atom
- Basecamp 3
- Beaker
- Bitwarden
- CrashPlan
- Cryptocat(開発終了)
- Discord
- balenaEtcher
- GitHub Desktop
- Keybase
- GitKraken
- Lbry
- Light Table
- Mattermost
- Microsoft Teams
- MongoDB Compass
- Notion
- Joplin
- Quasar Framework
- Shift
- ShogiHome
- Signal
- Skype
- Slack
- Symphony Chat
- Terminus
- TIDAL
- Twitch
- Visual Studio Code
- VOICEVOX
- WebTorrent
- WhatsApp
- Wire
- Yammer