Electron (ソフトウェア)
![]() | |
![]() | |
作者 | GitHub |
---|---|
開発元 | OpenJS Foundation |
初版 | 2013年7月15日[1] |
最新版 | |
最新評価版 | |
リポジトリ |
![]() |
プログラミング 言語 | C++、JavaScript、Objective-C++、PythonおよびObjective-C |
対応OS | Linux、macOSおよびWindows |
プラットフォーム | IA-32, x86-64, ARM |
ライセンス | MIT License[4] |
公式サイト |
www![]() |
Electron(旧称はAtom Shell[5])とはGitHubが開発と管理をしている、フリーでオープンソースなソフトウェアフレームワークである[6]。Electronにより、ChromiumレンダリングエンジンとランタイムのNode.jsとを組み合わせたWeb技術を用いたデスクトップGUIアプリケーションの開発が可能となる[7]。Electronは、Atom、GitHub Desktop、Light Table、Visual Studio Code、Evernote[8]、およびWordPress Desktop[9]などのオープンソースプロジェクトの基盤となる中心的GUIフレームワークである。
アーキテクチャ[編集]
Electronアプリケーションは複数プロセスで構成されており、1つの「メイン」プロセスと複数の「レンダラー」プロセスが存在する。メインプロセスがアプリケーションロジックを実行すると、レンダラープロセスを複数起動できるようになる。レンダラープロセスはユーザー画面に表示されるウインドウへ、HTMLやCSSをレンダリングする。
可能ならば、メインプロセスとレンダラープロセスは共に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のバージョン | Moduleのバージョン | N-APIのバージョン | ICUのバージョン |
---|---|---|---|---|---|---|---|
v14.0.x | ベータ版 | TBD | 92 | 14.17 | 89 | 8 | 69.1 |
v13.0.x | 最新版 | 2021-05-25 | 91 | 14.16 | 89 | 7 | 68.1 |
v12.0.x | サポート中 | 2021-03-02 | 89 | 14.16 | 87 | 7 | 68.1 |
v11.4.x | サポート中 | 2020-11-16 | 87 | 12.18 | 85 | 5 | 65.1 |
v10.4.x | サポート終了 | 2020-08-25 | 85 | 12.16 | 82 | 5 | 65.1 |
v9.4.x | サポート終了 | 2020-05-18 | 83 | 12.14 | 80 | 5 | 65.1 |
v8.3.x | サポート終了 | 2020-02-04 | 80 | 12.13 | 76 | 5 | 65.1 |
v7.3.x | サポート終了 | 2019-10-22 | 78 | 12.8 | 75 | 4 | 64.2 |
v6.1.x | サポート終了 | 2019-07-29 | 76 | 12.4 | 73 | 4 | 64.2 |
v5.1.x | サポート終了 | 2019-04-24 | 73 | 12.0 | 70 | 4 | 63.1 |
v4.2.x | サポート終了 | 2018-12-20 | 69 | 10.11 | 69 | 3 | 62.2 |
v3.1.x | サポート終了 | 2018-09-18 | 66 | 10.2 | 64 | 3 | ? |
v2.0.x | サポート終了 | 2018-05-01 | 61 | 8.9 | 57 | ? | ? |
v1.8.x | サポート終了 | 2017-12-12 | 59 | 8.2 | 57 | ? | ? |
Electronを利用したソフトウェア[編集]
以下のソフトウェアを含む、数多くのデスクトップアプリケーションがElectronで作られている[17]。
- 1Password
- Atom[18]
- Basecamp 3[17]
- Beaker
- Bitwarden
- CrashPlan[19]
- Cryptocat[17](開発終了)
- Discord
- balenaEtcher[20]
- GitHub Desktop[21]
- Keybase
- GitKraken
- Lbry
- Light Table
- Mattermost[17]
- Microsoft Teams[22]
- MongoDB Compass[17]
- Notion[17]
- Joplin[23]
- Quasar Framework
- Shift[17]
- Signal
- Skype[17]
- Slack[24]
- Symphony Chat[25]
- Terminus
- TIDAL[17]
- Twitch[17]
- Visual Studio Code[26][27]
- VOICEVOX[28][29]
- WebTorrent[17]
- Wire[30]
- Yammer
関連項目[編集]
- Apache Cordova
- Chromium Embedded Framework (CEF)
- HTML Application
- Qt WebEngine
- XULRunner
- JavaFX WebView
- DotNetBrowser
- プログレッシブウェブアプリケーション
- Node.js
脚注[編集]
- ^ “electron/electron”. GitHub. 2018年5月8日閲覧。
- ^ "Release Notes for v19.0.8"; 閲覧日: 2022年7月11日; 出版日: 2022年7月7日.
- ^ "electron v19.0.0-beta.4"; 閲覧日: 2022年6月10日; 出版日: 2022年5月5日.
- ^ “electron/LICENSE at master”. GitHub. 2020年7月3日閲覧。
- ^ “Atom Shell is now Electron”. Atom (2015年4月23日). 2020年7月3日閲覧。
- ^ “electron/electron”. GitHub. 2018年5月8日閲覧。
- ^ “Electron Internals: Using Node as a Library”. electronjs.org. 2020年7月3日閲覧。
- ^ Small, Ian (2020年10月7日). “Introducing the New Evernote for Windows and Mac”. I Programmer 2020年11月3日閲覧。
- ^ “GitHub Repository”. 2019年6月16日閲覧。
- ^ “From native to JavaScript in Electron | Electron Blog”. electronjs.org. 2019年4月26日閲覧。
- ^ “Electron nodeIntegration Bypass” (2018年5月10日). 2021年9月12日閲覧。
- ^ “Webview Vulnerability Fix” (2018年3月21日). 2021年9月12日閲覧。
- ^ “Electron considered harmful”. Drew DeVault's Blog. 2019年10月2日閲覧。
- ^ “Electron is Cancer”. Commit Log. Medium. 2019年10月2日閲覧。
- ^ “Electron is flash for the desktop”. 2021年6月12日閲覧。
- ^ “electron-alternatives: Few Cross platform desktop GUI App development options are listed here”. GitHub (2020年10月8日). 2021年9月12日閲覧。
- ^ a b c d e f g h i j k “Apps”. Electron. 2020年6月13日閲覧。
- ^ “Atom Shell is now Electron”. Electron (2015年4月23日). 2017年7月15日閲覧。
- ^ “CrashPlan for Small Business version 6.7”. Code42 CrashPlan Release Notes. 2018年4月25日閲覧。
- ^ “Etcher on GitHub”. 2020年7月7日閲覧。
- ^ “Announcing Git Integration for Atom and GitHub Desktop Beta”. The GitHub Blog (2017年5月16日). 2017年7月15日閲覧。
- ^ “Electron Helper and branding”. techcommunity.microsoft.com (2017年5月20日). 2018年5月8日閲覧。
- ^ “Joplin - Apps - Electron”. 2021年9月12日閲覧。
- ^ “Building hybrid applications with Electron”. Several People Are Coding. 2017年8月12日閲覧。
- ^ “symphonyoss/SymphonyElectron”. GitHub. 2018年9月27日閲覧。
- ^ “Microsoft's new Code editor is built on Google's Chromium”. Ars Technica (2015年4月29日). 2015年11月18日閲覧。
- ^ “Open Source project”. 2021年9月12日閲覧。
- ^ “VOICEVOX”. 公式サイト. 2022年6月18日閲覧。
- ^ “商用可・無料の音声読み上げツール「VOICEVOX」が公開 ~素人でも手軽に満足のいく品質が得られる丁度よさが魅力【8月6日追記】”. 窓の杜 (2021年8月2日). 2022年6月18日閲覧。
- ^ “wireapp/wire-desktop”. GitHub. 2018年5月8日閲覧。
E外部リンク[編集]
- 公式ウェブサイト
- Electron.NET - アプリケーションをC#で書けるようにするラッパー