Electron (ソフトウェア)

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をバンドルするのではなく、オペレーティングシステムに内蔵されたブラウザを使用する方法が記述されている。
Electronを利用したソフトウェア.
以下のソフトウェアを含む、数多くのデスクトップアプリケーションがElectronで作られている。