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で作られている。 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 ポータル FLOSS Apache Cordova Chromium Embedded Framework（英語版） (CEF) HTML Application（英語版） Qt WebEngine XULRunner JavaFX WebView DotNetBrowser（英語版） プログレッシブウェブアプリ Node.js ^ “electron/electron”. GitHub. 8 May 2018閲覧。 ^ "Release 32.0.1"; 閲覧日: 2024年8月22日; 出版日: 2024年8月21日. ^ https://github.com/electron/electron/releases/tag/v26.0.0-beta.3. ^ “electron/LICENSE at master”. GitHub. 3 July 2020閲覧。 ^ a b “Atom Shell is now Electron”. Atom (23 April 2015). 2022年11月21日閲覧。 ^ “electron/electron”. GitHub. 8 May 2018閲覧。 ^ “Electron Internals: Using Node as a Library”. electronjs.org. 3 July 2020閲覧。 ^ Small, Ian (7 October 2020). “Introducing the New Evernote for Windows and Mac”. I Programmer. https://evernote.com/blog/new-windows-mac/ 3 November 2020閲覧。  ^ “GitHub Repository”. 16 June 2019閲覧。 ^ “From native to JavaScript in Electron | Electron Blog”. electronjs.org. 2019年4月26日閲覧。 ^ “Electron nodeIntegration Bypass” (10 May 2018). 2021年9月12日閲覧。 ^ “Webview Vulnerability Fix” (21 March 2018). 2021年9月12日閲覧。 ^ “Electron considered harmful”. Drew DeVault's Blog. 2 October 2019閲覧。 ^ “Electron is Cancer”. Commit Log. Medium. 2 October 2019閲覧。 ^ “Electron is flash for the desktop”. 2021年6月12日閲覧。 ^ “electron-alternatives: Few Cross platform desktop GUI App development options are listed here”. GitHub (8 October 2020). 2021年9月12日閲覧。 ^ a b c d e f g h i j k “Apps”. Electron. 13 June 2020閲覧。 ^ “CrashPlan for Small Business version 6.7”. Code42 CrashPlan Release Notes. 25 April 2018閲覧。 ^ “Etcher on GitHub”. 7 July 2020閲覧。 ^ “Announcing Git Integration for Atom and GitHub Desktop Beta”. The GitHub Blog (16 May 2017). 15 July 2017閲覧。 ^ “Electron Helper and branding”. techcommunity.microsoft.com (20 May 2017). 8 May 2018閲覧。 ^ “Joplin - Apps - Electron”. 2021年9月12日閲覧。 ^ “Building hybrid applications with Electron”. Several People Are Coding. 12 August 2017閲覧。 ^ “symphonyoss/SymphonyElectron”. GitHub. 27 September 2018閲覧。 ^ “Microsoft's new Code editor is built on Google's Chromium”. Ars Technica (29 April 2015). 18 November 2015閲覧。 ^ “Open Source project”. 2021年9月12日閲覧。 ^ “VOICEVOX”. 公式サイト. 2022年6月18日閲覧。 ^ “商用可・無料の音声読み上げツール「VOICEVOX」が公開 ～素人でも手軽に満足のいく品質が得られる丁度よさが魅力【8月6日追記】”. 窓の杜 (2021年8月2日). 2022年6月18日閲覧。 ^ “wireapp/wire-desktop”. GitHub. 8 May 2018閲覧。 公式ウェブサイト Electron.NET - アプリケーションをC#で書けるようにするラッパー