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アプリケーションは、類似した機能の…