Electron (framework)
Electron (precedentemente noto come Atom Shell[3]) è un framework open source gestito e ospitato da GitHub.[4] Electron consente lo sviluppo della GUI di applicazioni desktop utilizzando tecnologie Web: combina il motore di rendering Chromium e il runtime Node.js.[5] Electron è il principale framework per la GUI dietro alcuni importanti progetti open source tra cui Atom,[6] GitHub Desktop,[7] Light Table,[8] Visual Studio Code[9] e WordPress Desktop.[10]
Electron software | |
---|---|
Genere | Framework per applicazioni web |
Sviluppatore | GitHub Inc. |
Data prima versione | 15 luglio 2013 |
Ultima versione | 33.0.0 (14 ottobre 2024) |
Ultima beta | 23.0.0-alpha.2 (8 dicembre 2022[1][2]) |
Sistema operativo | Microsoft Windows Linux macOS |
Linguaggio | Objective C TypeScript JavaScript C++ Python Python |
Licenza | licenza MIT (licenza libera) |
Sito web | www.electronjs.org |
Architettura
modificaLe applicazioni Electron sono composte da più processi: il processo "browser" e diversi processi "renderer". Il processo browser esegue la logica dell'applicazione e può quindi avviare più processi di rendering, restituendo le finestre che appaiono sullo schermo di un utente processando HTML e CSS.
Entrambi i processi browser e renderer possono essere eseguiti con l'integrazione di Node.js se abilitati.
La maggior parte delle API di Electron sono scritte in C++ o Objective-C e quindi esposte direttamente al codice dell'applicazione tramite i collegamenti JS[11].
Sicurezza
modificaPoiché le applicazioni Electron sono applicazioni web eseguite nel motore Chromium, potrebbero essere vulnerabili ad attacchi relativi al Web come attacchi di scripting cross-site, attraverso gli stessi vettori di attacco di un browser (ad es. Chromium) o altri componenti interni (Node.js) se si utilizzano determinate versioni di Electron.[12] Esempi di tali vulnerabilità sono stati risolti nelle versioni di Electron 1.7.13, 1.8.4 e 2.0.0-beta.5.[13]
Criticità
modificaElectron non supporta i sistemi operativi mobili come Android e iOS.
Electron è stato criticato poiché le applicazioni programmate con questo framework (come Atom e Visual Studio Code) consumano molta più RAM rispetto ad altre applicazioni simili (Emacs, Nano, Vim, Sublime Text). Le applicazioni in Electron vengono fornite con un pre-bundle di Chromium, quindi strumenti in origine molto semplici (es. terminali, appunti) con Electron vengono appesantiti.[14] Altre critiche sono focalizzate sul fatto che le applicazioni Electron non sono native, il che significa mancanza di integrazione.[15]
Software che utilizzano Electron
modificaNumerose applicazioni desktop sono realizzate con Electron, tra cui:[16]
Derivazioni
modificaElectron.NET
modificaIl 27 ottobre 2017, la comunità ha rilasciato un clone chiamato Electron.NET[27] per il framework .NET Core. Questo è un progetto open source che consente l'accesso alle API Electron native passando per il linguaggio di programmazione C#. Lo sviluppo .NET fa riferimento a proprio ecosistema, anziché utilizzare JavaScript.
Note
modifica- ^ (EN) Release Notes, su GitHub. URL consultato il 10 dicembre 2022.
- ^ (EN) Stable Releases, su electronjs.org. URL consultato il 10 dicembre 2022.
- ^ (EN) Kevin Sawicki, Atom Shell is now Electron, su Electron Blog, 23 aprile 2015. URL consultato il 5 ottobre 2019.
- ^ electron/electron, su GitHub. URL consultato il 5 ottobre 2019.
- ^ (EN) Cheng Zhao, Electron Internals: Using Node as a Library, su Electron Blog, 8 agosto 2016. URL consultato il 5 ottobre 2019.
- ^ atom/atom, su GitHub. URL consultato il 5 ottobre 2019.
- ^ (EN) GitHub Desktop, su GitHub. URL consultato il 5 ottobre 2019.
- ^ (EN) Gabriel Horner, Light Table 0.8.0, su lighttable.com, Light Table Blog, 10 dicembre 2015. URL consultato il 5 ottobre 2019.
- ^ (EN) Mike James, Visual Studio Code - Now With Added Extensions, in I Programmer, 23 nobrembre 2015. URL consultato il 5 ottobre 2019.
- ^ GitHub Repository, su github.com. URL consultato il 16 giugno 2019.
- ^ (EN) Shelley Vohr, From native to JavaScript in Electron | Electron Blog, su Electron Blog, 19 marzo 2019. URL consultato il 5 ottobre 2019.
- ^ (EN) Brendan Scarvell, Electron nodeIntegration Bypass | SpiderLabs Blog, su Trustwave, 10 maggio 2018. URL consultato il 5 ottobre 2019.
- ^ (EN) Charles Kerr, Webview Vulnerability Fix, su Electron Blog, 21 marzo 2018. URL consultato il 5 ottobre 2019.
- ^ (EN) Electron considered harmful, su Drew DeVault's Blog, 24 novembre 2016. URL consultato il 5 ottobre 2019.
- ^ (EN) Casper Beyer, Electron is Cancer - Commit Log, in Medium, 8 novembre 2017. URL consultato il 5 ottobre 2019.
- ^ a b c d e f g Applicazioni Electron, su Electron Blog. URL consultato il 5 ottobre 2019 (archiviato dall'url originale il 27 settembre 2019).
- ^ (EN) Kevin Sawicki, Atom Shell is now Electron, su Electron Blog, 23 aprile 2015. URL consultato il 5 ottobre 2019 (archiviato dall'url originale il 16 ottobre 2019).
- ^ (EN) CrashPlan for Small Business version 6.7, su Code42 Support. URL consultato il 5 ottobre 2019 (archiviato dall'url originale il 26 aprile 2018).
- ^ balena-io/etcher, su github.com. URL consultato il 28 agosto 2018.
- ^ (EN) Phil Haack, Announcing Git Integration for Atom and GitHub Desktop Beta, su The GitHub Blog, 16 maggio 2017. URL consultato il 5 ottobre 2019.
- ^ (EN) Electron Helper and branding, su techcommunity.microsoft.com, 20 maggio 2017. URL consultato il 5 ottobre 2019.
- ^ (EN) Building hybrid applications with Electron, su Several People Are Coding, 25 ottobre 2016. URL consultato il 5 ottobre 2019.
- ^ symphonyoss/SymphonyElectron, su GitHub. URL consultato il 5 ottobre 2019.
- ^ (EN) Peter Bright, Microsoft’s new Code editor is built on Google’s Chromium, in Ars Technica, 29 aprile 2015. URL consultato il 5 ottobre 2019.
- ^ Microsoft/vscode, su GitHub. URL consultato il 5 ottobre 2019.
- ^ wireapp/wire-desktop, su GitHub. URL consultato il 5 ottobre 2019.
- ^ Electron.NET
Voci correlate
modificaAltri progetti
modifica- Wikimedia Commons contiene immagini o altri file su Electron
Collegamenti esterni
modifica- (EN) Sito ufficiale, su electronjs.org.
- (MUL) Blog ufficiale, su electronjs.org.
- (EN) Electron, su GitHub.
- Repository sorgenti di Electron, su github.com.
- (EN) Electron, su Free Software Directory.
- Electron.NET su GitHub