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で作られている。

 
 Atom
 Basecamp 3
 
 Bitwarden
 
 （開発終了）
 Discord
 balenaEtcher
 GitHub Desktop
 
 GitKraken
 
 Light Table
 Mattermost
 Microsoft Teams
 MongoDB Compass
 Notion
 Joplin
 Quasar Framework
 Shift
 Signal
 Skype
 Slack
 Symphony Chat
 Terminus
 TIDAL
 Twitch
 Visual Studio Code
 VOICEVOX
 
 WhatsApp
 Wire
 Yammer

関連項目 

 Apache Cordova
  (CEF)
 
 Qt WebEngine
 XULRunner
 JavaFX WebView
 
 
 Node.js

脚注

E外部リンク 
 
 Electron.NET - アプリケーションをC#で書けるようにするラッパー

マイクロソフトのフリーソフト
クロスプラットフォームのソフトウェア
2013年のソフトウェア