Content deleted Content added
Citation bot (talk | contribs) Removed parameters. | Use this bot. Report bugs. | Suggested by Whoop whoop pull up | Category:GitHub | #UCB_Category 6/12 |
|||
(34 intermediate revisions by 24 users not shown) | |||
Line 9:
| developer = [[OpenJS Foundation]]
| released = {{Start date and age|df=yes|2013|7|15}}<ref>{{cite web|url=https://github.com/electron/electron/releases/tag/v0.1.0|title=electron/electron|website=GitHub|access-date=8 May 2018|archive-date=2 August 2016|archive-url=https://web.archive.org/web/20160802143311/https://github.com/electron/electron/releases/tag/v0.1.0|url-status=live}}</ref>
| latest release version = 36.2.0<ref name="current-version">{{cite web|url=https://github.com/electron/electron/releases/tag/v36.2.0|title=Release electron v36.2.0 · electron/electron|date=7 May 2025|website=GitHub|access-date=7 May 2025}}</ref>
| latest release date = {{
| latest preview version =
| latest preview date = {{
| programming language = [[C++]], [[JavaScript]], [[Objective-C++]] and [[Objective-C]]
| operating system = [[Linux
| platform = [[IA-32]], [[x86-64]], [[ARM architecture|ARM]]
| license = [[MIT License]]<ref name="license">{{cite web|title=electron/LICENSE at master|url=https://github.com/electron/electron/blob/master/LICENSE|website=GitHub|access-date=3 July 2020|archive-date=12 May 2017|archive-url=https://web.archive.org/web/20170512183219/https://github.com/electron/electron/blob/master/LICENSE|url-status=live}}</ref>
Line 20:
}}
'''Electron''' (formerly known as '''Atom Shell'''<ref name=":0">{{cite web|last1=Sawicki|first1=Kevin|date=23 April 2015|title=Atom Shell is now Electron|url=https://www.electronjs.org/blog/electron|url-status=live|access-date=6 January 2022|work=Electron|archive-url=https://web.archive.org/web/20171109205411/http://electronjs.org/blog/electron |archive-date=9 November 2017 }}</ref>) is a [[Free and open-source software|free and open-source]] [[software framework]] developed and maintained by [[OpenJS Foundation]].<ref>{{cite web |url=https://www.electronjs.org/ |title=Build cross-platform desktop apps with JavaScript, HTML, and CSS | Electron |access-date=February 1, 2023 |archive-date=9 May 2022 |archive-url=https://web.archive.org/web/20220509124521/https://www.electronjs.org/ |url-status=live }}</ref> The framework is designed to create desktop applications using [[Web development|web technologies]] (mainly [[HTML]], [[CSS]] and [[JavaScript]], although other technologies such as front-end frameworks and [[WebAssembly]] are possible) that are rendered using a version of the [[Chromium (web browser)|Chromium browser engine]] and a back end using the [[Node.js]] runtime environment.<ref>{{Cite web|url=https://electronjs.org/blog/electron-internals-using-node-as-a-library|title=Electron Internals: Using Node as a Library|website=electronjs.org|date=8 August 2016|access-date=3 July 2020|archive-date=9 November 2017|archive-url=https://web.archive.org/web/20171109205326/https://electronjs.org/blog/electron-internals-using-node-as-a-library|url-status=live}}</ref> It also uses various [[API
Electron was originally built for [[Atom (text editor)|Atom]]<ref name=":0" /> and is the main GUI framework behind several other open-source projects including [[GitHub Desktop]], [[Light Table (software)|Light Table]],<ref name="LT1">{{cite web|last1=Horner|first1=Gabriel|title=Light Table 0.8.0|url=http://lighttable.com/2015/12/10/light-table-0-8-0/|date=10 December 2015|access-date=3 July 2020|publisher=lighttable.com|archive-date=13 December 2015|archive-url=https://web.archive.org/web/20151213173414/http://lighttable.com/2015/12/10/light-table-0-8-0/|url-status=live}}</ref> [[Visual Studio Code]], [[WordPress]] Desktop,<ref>{{cite web|url=https://github.com/Automattic/wp-desktop|title=GitHub Repository|website=[[GitHub]]|access-date=16 June 2019|archive-date=19 February 2016|archive-url=https://web.archive.org/web/20160219194955/https://github.com/Automattic/wp-desktop|url-status=live}}</ref> and [[Eclipse Theia]].<ref name="theia">{{Cite web|title=Theia - Cloud and Desktop IDE Platform|url=https://theia-ide.org/|access-date=2021-12-31|website=theia-ide.org|archive-date=20 April 2018|archive-url=https://web.archive.org/web/20180420143515/https://theia-ide.org/|url-status=live}}</ref>
== Architecture ==
Electron applications include a "main" process and several "renderer" processes. The main process runs the logic for the application (e.
Both the main and renderer processes can run with [[Node.js]] integration if the {{code|nodeIntegration}} field in the main process is set to {{code|true|javascript}}.{{fact|date=October 2024}}
Most of Electron's APIs are written in [[C++]] or [[Objective-C]] and are exposed directly to the application code through [[JavaScript]] bindings.<ref>{{Cite web|url=https://electronjs.org/blog/from-native-to-js|title=From native to JavaScript in Electron {{!}} Electron Blog|website=electronjs.org|date=19 March 2019|access-date=2019-04-26|archive-date=26 April 2019|archive-url=https://web.archive.org/web/20190426032159/https://electronjs.org/blog/from-native-to-js|url-status=live}}</ref>
Line 40:
! Release !! Status !! Release date !! End of life date || Chromium version !! Node.js version !! Module version || N-API version || ICU version
|-
| {{Version|
|-
| {{Version|
|-
| {{Version|o|v3.1.x}} || {{Version|o|End-of-Life}} ||
| {{Version|co|v28.x.y}} || {{Version|co|Active}} ||{{Date|2023-12-05}}<ref>{{Cite web |title=Release electron v28.0.0 · electron/electron|url=https://github.com/electron/electron/releases/tag/v28.0.0 |date=2023-12-04 |access-date=2023-12-14 |website=GitHub |language=en |archive-date=14 December 2023 |archive-url=https://web.archive.org/web/20231214215655/https://github.com/electron/electron/releases/tag/v28.0.0 |url-status=live }}</ref>||{{Date|2024-06-11}} ||120 ||18.18 ||? || ? || ?▼
|-
| {{Version|o|v4.2.x}} || {{Version|o|End-of-Life}} ||
| {{Version|co|v27.x.y}} || {{Version|co|Active}} ||{{Date|2023-10-10}}<ref>{{Cite web |title=Release electron v27.0.0 · electron/electron|url=https://github.com/electron/electron/releases/tag/v27.0.0 |date=2023-10-10 |access-date=2023-10-11 |website=GitHub |language=en |archive-date=11 October 2023 |archive-url=https://web.archive.org/web/20231011081004/https://github.com/electron/electron/releases/tag/v27.0.0 |url-status=live }}</ref>||{{Date|2024-04-16}} ||118 ||18.17 || ? || ? || ?▼
|-
| {{Version|o|v5.1.x}} || {{Version|o|End-of-Life}} ||
| {{Version|o|v26.x.y}} || {{Version|o|End-of-Life}} ||{{Date|2023-08-15}}<ref>{{Cite web |title=Release electron v26.0.0 · electron/electron|url=https://github.com/electron/electron/releases/tag/v26.0.0 |access-date=2023-09-23 |website=GitHub |language=en |archive-date=23 September 2023 |archive-url=https://web.archive.org/web/20230923151615/https://github.com/electron/electron/releases/tag/v26.0.0|url-status=live }}</ref>||{{Date|2024-02-20}} ||116 ||18.16 || ? || ? || ?▼
|-
| {{Version|o|v6.1.x}} || {{Version|o|End-of-Life}} ||
| {{Version|o|v25.x.y}} || {{Version|o|End-of-Life}} ||{{Date|2023-05-30}}<ref>{{Cite web |title=Release electron v25.0.0 · electron/electron|url=https://github.com/electron/electron/releases/tag/v25.0.0 |access-date=2023-09-23 |website=GitHub |language=en |archive-date=23 September 2023 |archive-url=https://web.archive.org/web/20230923151832/https://github.com/electron/electron/releases/tag/v25.0.0|url-status=live }}</ref>||{{Date|2023-12-05}} ||114 ||18.15 || ? || ? || ?▼
|-
| {{Version|o|v7.3.x}} || {{Version|o|End-of-Life}} ||
| {{Version|o|v24.x.y}} || {{Version|o|End-of-Life}} ||{{Date|2023-04-04}}<ref>{{Cite web |title=Release electron v24.0.0 · electron/electron|url=https://github.com/electron/electron/releases/tag/v24.0.0 |access-date=2023-09-23 |website=GitHub |language=en |archive-date=23 September 2023 |archive-url=https://web.archive.org/web/20230923152010/https://github.com/electron/electron/releases/tag/v24.0.0|url-status=live }}</ref>||{{Date|2023-10-10}} ||112 ||18.14 || ? || ? || ?▼
|-
| {{Version|o|v8.3.x}} || {{Version|o|End-of-Life}} ||
| {{Version|o|v23.x.y}} || {{Version|o|End-of-Life}} ||{{Date|2022-11-30}}<ref>{{Cite web |title=Release electron v23.0.0 · electron/electron |url=https://github.com/electron/electron/releases/tag/v23.0.0 |access-date=2023-09-23 |website=GitHub |language=en |archive-date=23 September 2023 |archive-url=https://web.archive.org/web/20230923152229/https://github.com/electron/electron/releases/tag/v23.0.0 |url-status=live }}</ref>||{{Date|2023-08-15}} ||110 ||18.12 || ? || ? || ?▼
|-
| {{Version|o|v9.4.x}} || {{Version|o|End-of-Life}} ||
| {{Version|o|v22.x.y}} || {{Version|o|End-of-Life}} ||{{Date|2022-11-30}}<ref name="auto2">{{Cite web |title=Release electron v22.0.0 · electron/electron |url=https://github.com/electron/electron/releases/tag/v22.0.0 |access-date=2022-12-16 |website=GitHub |language=en |archive-date=15 December 2022 |archive-url=https://web.archive.org/web/20221215021758/https://github.com/electron/electron/releases/tag/v22.0.0 |url-status=live }}</ref>||{{Date|2023-10-10}} ||108 ||16.17 || ? || ? || ?▼
|-
| {{Version|o|v10.4.x}} || {{Version|o|End-of-Life}} ||
| {{Version|o|v21.x.y}} || {{Version|o|End-of-Life}} ||{{Date|2022-09-26}}<ref name="auto">{{Cite web |title=Release electron v21.0.0 · electron/electron |url=https://github.com/electron/electron/releases/tag/v21.0.0 |access-date=2022-12-16 |website=GitHub |language=en |archive-date=16 December 2022 |archive-url=https://web.archive.org/web/20221216134546/https://github.com/electron/electron/releases/tag/v21.0.0 |url-status=live }}</ref>||{{Date|2023-04-04}} ||106 ||16.16 || ? || ? || ?▼
|-
| {{Version|o|v11.4.x}} || {{Version|o|End-of-Life}} ||
| {{Version|o|v20.x.y}} || {{Version|o|End-of-Life}} ||{{Date|2022-08-02}}<ref>{{Cite web |title=Release electron v20.0.0 · electron/electron |url=https://github.com/electron/electron/releases/tag/v20.0.0 |access-date=2022-12-16 |website=GitHub |language=en |archive-date=16 December 2022 |archive-url=https://web.archive.org/web/20221216134548/https://github.com/electron/electron/releases/tag/v20.0.0 |url-status=live }}</ref>||{{Date|2023-02-07}} ||104 ||16.15 || ? || ? || ?▼
|-
| {{Version|o|
| {{Version|o|v19.x.y}} || {{Version|o|End-of-Life}} || {{Date|2022-05-24}}<ref name="v19">{{Cite web|url=https://github.com/electron/electron/releases/tag/v19.0.0|title=Release electron v19.0.0 · electron/electron|website=GitHub|access-date=31 May 2022|archive-date=31 May 2022|archive-url=https://web.archive.org/web/20220531223319/https://github.com/electron/electron/releases/tag/v19.0.0|url-status=live}}</ref> ||{{Date|2022-11-29}}<ref name="auto2"/>|| 102 || 16.14 || 106 || ? || ?▼
|-
| {{Version|o|
|-
| {{Version|o|v14.x.y}} || {{Version|o|End-of-Life}} || 30 August 2021 || 29 March 2022<ref name="v18"/> || 92 || 14.17 || 89 || 8 || 69.1
| {{Version|o|v17.x.y}} || {{Version|o|End-of-Life}} || {{Date|2022-02-01}}<ref name="v17">{{Cite web|url=https://github.com/electron/electron/releases/tag/v17.0.0|title=Release electron v17.0.0 · electron/electron|website=GitHub|access-date=28 February 2022|archive-date=12 February 2022|archive-url=https://web.archive.org/web/20220212020115/https://github.com/electron/electron/releases/tag/v17.0.0|url-status=live}}</ref> ||{{Date|2022-08-02}} || 98 || 16.13 || 101 || ? || ?▼
|-
| {{Version|o|
|-
| {{Version|o|
|-
▲| {{Version|o|
▲| {{Version|o|v14.x.y}} || {{Version|o|End-of-Life}} || {{Date|2021-08-30}} || {{Date|2022-03-29}}<ref name="v18"/> || 92 || 14.17 || 89 || 8 || 69.1
|-
| {{Version|o|
|-
| {{Version|o|
|-
▲| {{Version|o|
▲| {{Version|o|v11.4.x}} || {{Version|o|End-of-Life}} || {{Date|2020-11-16}} || {{Date|2021-08-30}} || 87 || 12.18 || 85 || 5 || 65.1
|-
▲| {{Version|o|v21.x.y}} || {{Version|o|End-of-Life}} ||
▲| {{Version|o|v10.4.x}} || {{Version|o|End-of-Life}} || {{Date|2020-08-25}} || {{Date|2021-05-25}} || 85 || 12.16 || 82 || 5 || 65.1
|-
▲| {{Version|o|v22.x.y}} || {{Version|o|End-of-Life}} ||
▲| {{Version|o|v9.4.x}} || {{Version|o|End-of-Life}} || {{Date|2020-05-18}} || {{Date|2021-03-02}} || 83 || 12.14 || 80 || 5 || 65.1
|-
▲| {{Version|o|
▲| {{Version|o|v8.3.x}} || {{Version|o|End-of-Life}} || {{Date|2020-02-04}} || {{Date|2020-11-16}} || 80 || 12.13 || 76 || 5 || 65.1
|-
▲| {{Version|o|
▲| {{Version|o|v7.3.x}} || {{Version|o|End-of-Life}} || {{Date|2019-10-22}} || {{Date|2020-08-25}} || 78 || 12.8 || 75 || 4 || 64.2
|-
▲| {{Version|
▲| {{Version|o|v6.1.x}} || {{Version|o|End-of-Life}} || {{Date|2019-07-29}} || {{Date|2020-05-18}} || 76 || 12.4 || 73 || 4 || 64.2
|-
▲| {{Version|o|v26.x.y}} || {{Version|o|End-of-Life}} ||
▲| {{Version|o|v5.1.x}} || {{Version|o|End-of-Life}} || {{Date|2019-04-24}} || {{Date|2020-02-04}} || 73 || 12.0 || 70 || 4 || 63.1
|-
▲| {{Version|
▲| {{Version|o|v4.2.x}} || {{Version|o|End-of-Life}} || {{Date|2018-12-20}} || {{Date|2019-10-22}} || 69 || 10.11 || 69 || 3 || 62.2
|-
▲| {{Version|o|
▲| {{Version|o|v3.1.x}} || {{Version|o|End-of-Life}} || {{Date|2018-09-18}} || {{Date|2019-07-29}} || 66 || 10.2 || 64 || 3 || ?
|-
| {{Version|o|
|-
| {{Version|o|
|-
| {{Version|o|v31.x.y}} || {{Version|o|End-of-Life}} ||11 June 2024 ||7 January 2025 ||126 ||20.14 ||? || ? || ?
|-
| {{Version|o|v32.x.y}} || {{Version|o|End-of-Life}} ||20 August 2024 ||4 March 2025 ||128 ||20.16 ||? || ? || ?
|-
▲| {{Version|o|
|-
| {{Version|co|v34.x.y}} || {{Version|co|Active}} ||14 January 2025<ref>{{cite web|url=https://github.com/electron/electron/releases/tag/v34.0.0|title=Release electron v34.0.0 · electron/electron|date=14 January 2025|website=GitHub|access-date=7 May 2025}}</ref> ||24 June 2025 ||132 ||20.18 ||? || ? || ?
|-
| {{Version|co|v35.x.y}} || {{Version|co|Active}} ||4 March 2025<ref>{{cite web|url=https://github.com/electron/electron/releases/tag/v35.0.0|title=Release electron v35.0.0 · electron/electron|date=3 March 2025|website=GitHub|access-date=7 May 2025}}</ref> ||2 September 2025 ||134 ||22.14 ||? || ? || ?
|-
| {{Version|c|v36.x.y}} || {{Version|c|Current}} ||29 April 2025<ref name="current">{{cite web|url=https://github.com/electron/electron/releases/tag/v36.0.0|title=Release electron v36.0.0 · electron/electron|date=28 April 2025|website=GitHub|access-date=7 May 2025}}</ref> ||28 October 2025 ||136 ||22.14 ||? || ? || ?
|-
| {{Version|cp|v37.x.y}} || {{Version|cp|Prerelease}} ||24 June 2025 (Scheduled)<ref name="prerelease">{{cite web|url=https://www.electronjs.org/docs/latest/tutorial/electron-timelines|title=Releases|date=21 April 2025|website=Electron|access-date=7 May 2025}}</ref> ||13 January 2026 ||138 ||TBD ||? || ? || ?
|-
| {{Version|p|v38.x.y}} || {{Version|p|Nightly}} ||TBD<ref name="nightly">{{cite web|url=https://releases.electronjs.org/release?channel=nightly|title=Nightly · Electron Releases|date=30 April 2025|website=Electron|access-date=7 May 2025}}</ref> ||TBD ||TBD ||TBD ||? || ? || ?
|}
Line 105 ⟶ 120:
{{Main|List of software using Electron}}
Desktop applications built with Electron include [[Atom (text editor)|Atom]],<ref name="electron-blog">{{cite web |last1=Sawicki |first1=Kevin |date=23 April 2015 |title=Atom Shell is now Electron |url=https://electronjs.org/blog/2015/04/23/electron |url-status=dead |archive-url=https://web.archive.org/web/20191016124310/https://electronjs.org/blog/electron |archive-date=16 October 2019 |access-date=15 July 2017 |work=Electron}}</ref> [[Etcher (software)|balenaEtcher]],<ref>{{cite web |title=Etcher on GitHub |url=https://github.com/balena-io/etcher |url-status=live |archive-url=https://web.archive.org/web/20181116012922/https://github.com/balena-io/etcher |archive-date=16 November 2018 |access-date=7 July 2020 |website=[[GitHub]]}}</ref> [[
== Reception ==
The most common criticism of Electron is that it necessitates [[software bloat]] when used for simple programs.<ref>{{cite web |last=Proven |first=Liam |date=2021-11-19 |title=Some FOSS gems: Franz, RamBox, Pidgin and more |url=https://www.theregister.com/2021/11/19/friday_foss_fest/ |url-status=live |archive-url=https://web.archive.org/web/20211119235239/https://www.theregister.com/2021/11/19/friday_foss_fest/ |archive-date=19 November 2021 |accessdate=2022-08-26 |publisher=The Register}}</ref> As a result, [[Michael Larabel]] has referred to the framework as "notorious among most Linux desktop users for being resource heavy, not integrating well with most desktops, and generally being despised."<ref>{{cite web |last=Larabel |first=Michael |date=2019-02-09 |title=Electron Apps Are Bad, So Now You Can Create Desktop Apps With HTML5 + Golang |url=https://www.phoronix.com/news/HTML5-Golang-Desktop-Apps |url-status=live |archive-url=https://web.archive.org/web/20220826131838/https://www.phoronix.com/news/HTML5-Golang-Desktop-Apps |archive-date=26 August 2022 |accessdate=2022-08-26 |publisher=Phoronix
Researchers have shown that Electron's large feature set can be hijacked by bad actors with write access to the source JavaScript files. This requires root access on *nix systems and
▲Researchers have shown that Electron's large feature set can be hijacked by bad actors with write access to the source JavaScript files. This requires root access on *nix systems and isn't considered to be a vulnerability by the Electron developers.<ref>{{cite web |last=Gallagher |first=Sean |date=2019-08-07 |title=Skype, Slack, other Electron based apps can be easily backdoored |url=https://arstechnica.com/information-technology/2019/08/skype-slack-other-electron-based-apps-can-be-easily-backdoored/ |url-status=live |archive-url=https://web.archive.org/web/20190807173425/https://arstechnica.com/information-technology/2019/08/skype-slack-other-electron-based-apps-can-be-easily-backdoored/ |archive-date=7 August 2019 |accessdate=2022-08-26 |publisher=Ars Technica}}</ref> Those who are concerned that Electron is not always based on the newest version of Chromium have recommended [[progressive web application]]s as an alternative.<ref>{{cite web |last=Hoffman |first=Chris |date=2019-08-15 |title=That native app is probably just an old web browser |url=https://www.howtogeek.com/436841/that-native-app-is-probably-just-an-old-web-browser/ |url-status=live |archive-url=https://web.archive.org/web/20190815143207/https://www.howtogeek.com/436841/that-native-app-is-probably-just-an-old-web-browser/ |archive-date=15 August 2019 |accessdate=2022-08-26 |publisher=How To Geek}}</ref>
== See also ==
{{Portal|Free and open-source software}}
{{columns-list|colwidth=35em|
* [[Apache Cordova]]
* [[Chromium Embedded Framework]] (CEF)
Line 124 ⟶ 139:
* [[Progressive web app]]
* [[Node.js]]
* [[Tauri (software framework)]]
* [[Flutter (software)]]
* [[PyQt]]
}}
== References ==
{{Reflist|1}}
== External links ==
|