Electron (ソフトウェア)

クロスプラットフォームなデスクトップアプリケーションを製作するためのフレームワーク

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

Electron
作者 GitHub
開発元 OpenJS Foundation英語版
初版 2013年7月15日 (11年前) (2013-07-15)[1]
最新版
33.0.0[2] ウィキデータを編集 / 2024年10月14日 (2か月前)
最新評価版
26.0.0-beta.3[3] ウィキデータを編集 / 2023年6月7日 (18か月前)
リポジトリ ウィキデータを編集
プログラミング
言語
C++JavaScriptObjective-C++PythonおよびObjective-C
対応OS LinuxmacOSおよびWindows
プラットフォーム IA-32, x86-64, ARM
ライセンス MIT License[4]
公式サイト www.electronjs.org ウィキデータを編集
テンプレートを表示

アーキテクチャ

編集

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

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

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

セキュリティ

編集

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

批判

編集

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

バージョン

編集
リリース 状態 リリース日付 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で作られている[17]

関連項目

編集

脚注

編集
  1. ^ electron/electron”. GitHub. 8 May 2018閲覧。
  2. ^ "Release 33.0.0"; 閲覧日: 2024年10月16日; 出版日: 2024年10月14日.
  3. ^ https://github.com/electron/electron/releases/tag/v26.0.0-beta.3.
  4. ^ electron/LICENSE at master”. GitHub. 3 July 2020閲覧。
  5. ^ a b Atom Shell is now Electron”. Atom (23 April 2015). 2022年11月21日閲覧。
  6. ^ electron/electron”. GitHub. 8 May 2018閲覧。
  7. ^ Electron Internals: Using Node as a Library”. electronjs.org. 3 July 2020閲覧。
  8. ^ 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閲覧。 
  9. ^ GitHub Repository”. 16 June 2019閲覧。
  10. ^ From native to JavaScript in Electron | Electron Blog”. electronjs.org. 2019年4月26日閲覧。
  11. ^ Electron nodeIntegration Bypass” (10 May 2018). 2021年9月12日閲覧。
  12. ^ Webview Vulnerability Fix” (21 March 2018). 2021年9月12日閲覧。
  13. ^ Electron considered harmful”. Drew DeVault's Blog. 2 October 2019閲覧。
  14. ^ Electron is Cancer”. Commit Log. Medium. 2 October 2019閲覧。
  15. ^ Electron is flash for the desktop”. 2021年6月12日閲覧。
  16. ^ electron-alternatives: Few Cross platform desktop GUI App development options are listed here”. GitHub (8 October 2020). 2021年9月12日閲覧。
  17. ^ a b c d e f g h i j k Apps”. Electron. 13 June 2020閲覧。
  18. ^ CrashPlan for Small Business version 6.7”. Code42 CrashPlan Release Notes. 25 April 2018閲覧。
  19. ^ Etcher on GitHub”. 7 July 2020閲覧。
  20. ^ Announcing Git Integration for Atom and GitHub Desktop Beta”. The GitHub Blog (16 May 2017). 15 July 2017閲覧。
  21. ^ Electron Helper and branding”. techcommunity.microsoft.com (20 May 2017). 8 May 2018閲覧。
  22. ^ Joplin - Apps - Electron”. 2021年9月12日閲覧。
  23. ^ Building hybrid applications with Electron”. Several People Are Coding. 12 August 2017閲覧。
  24. ^ symphonyoss/SymphonyElectron”. GitHub. 27 September 2018閲覧。
  25. ^ Microsoft's new Code editor is built on Google's Chromium”. Ars Technica (29 April 2015). 18 November 2015閲覧。
  26. ^ Open Source project”. 2021年9月12日閲覧。
  27. ^ VOICEVOX”. 公式サイト. 2022年6月18日閲覧。
  28. ^ 商用可・無料の音声読み上げツール「VOICEVOX」が公開 ~素人でも手軽に満足のいく品質が得られる丁度よさが魅力【8月6日追記】”. 窓の杜 (2021年8月2日). 2022年6月18日閲覧。
  29. ^ wireapp/wire-desktop”. GitHub. 8 May 2018閲覧。

外部リンク

編集