Electron (framework)

Electron (precedentemente noto come Atom Shell[6]) è un framework open source gestito e ospitato da GitHub.[7] Electron consente lo sviluppo della GUI di applicazioni desktop utilizzando tecnologie Web: combina il motore di rendering Chromium e il runtime Node.js.[8] Electron è il principale framework per la GUI dietro alcuni importanti progetti open source tra cui Atom,[9] GitHub Desktop,[10] Light Table,[11] Visual Studio Code[12] e WordPress Desktop.[13]

Electron
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereFramework per applicazioni web
SviluppatoreGitHub Inc.
Data prima versione15 luglio 2013[1]
Ultima versione21.3.3 (1 dicembre 2022[2][3])
Ultima beta23.0.0-alpha.2 (8 dicembre 2022[4][5])
Sistema operativoMicrosoft Windows
Linux
macOS
LinguaggioObjective C
TypeScript
JavaScript
C++
Python
Python
LicenzaMIT
(licenza libera)
Sito webwww.electronjs.org

Architettura modifica

Le 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[14].

Sicurezza modifica

Poiché 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.[15] Esempi di tali vulnerabilità sono stati risolti nelle versioni di Electron 1.7.13, 1.8.4 e 2.0.0-beta.5.[16]

Criticità modifica

Electron 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.[17] Altre critiche sono focalizzate sul fatto che le applicazioni Electron non sono native, il che significa mancanza di integrazione.[18]

Software che utilizzano Electron modifica

Numerose applicazioni desktop sono realizzate con Electron, tra cui:[19]

Derivazioni modifica

Electron.NET modifica

Il 27 ottobre 2017, la comunità ha rilasciato un clone chiamato Electron.NET[30] 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

  1. ^ Release v0.1.0: Update node: use node's implementation of setImmediate. · electron/electron, su GitHub. URL consultato il 5 settembre 2019.
  2. ^ (EN) Release Notes, su GitHub. URL consultato il 10 dicembre 2022.
  3. ^ (EN) Stable Releases, su electronjs.org. URL consultato il 10 dicembre 2022.
  4. ^ (EN) Release Notes, su GitHub. URL consultato il 10 dicembre 2022.
  5. ^ (EN) Stable Releases, su electronjs.org. URL consultato il 10 dicembre 2022.
  6. ^ (EN) Kevin Sawicki, Atom Shell is now Electron, su Electron Blog, 23 aprile 2015. URL consultato il 5 ottobre 2019.
  7. ^ electron/electron, su GitHub. URL consultato il 5 ottobre 2019.
  8. ^ (EN) Cheng Zhao, Electron Internals: Using Node as a Library, su Electron Blog, 8 agosto 2016. URL consultato il 5 ottobre 2019.
  9. ^ atom/atom, su GitHub. URL consultato il 5 ottobre 2019.
  10. ^ (EN) GitHub Desktop, su GitHub. URL consultato il 5 ottobre 2019.
  11. ^ (EN) Gabriel Horner, Light Table 0.8.0, su lighttable.com, Light Table Blog, 10 dicembre 2015. URL consultato il 5 ottobre 2019.
  12. ^ (EN) Mike James, Visual Studio Code - Now With Added Extensions, in I Programmer, 23 nobrembre 2015. URL consultato il 5 ottobre 2019.
  13. ^ GitHub Repository, su github.com. URL consultato il 16 giugno 2019.
  14. ^ (EN) Shelley Vohr, From native to JavaScript in Electron | Electron Blog, su Electron Blog, 19 marzo 2019. URL consultato il 5 ottobre 2019.
  15. ^ (EN) Brendan Scarvell, Electron nodeIntegration Bypass | SpiderLabs Blog, su Trustwave, 10 maggio 2018. URL consultato il 5 ottobre 2019.
  16. ^ (EN) Charles Kerr, Webview Vulnerability Fix, su Electron Blog, 21 marzo 2018. URL consultato il 5 ottobre 2019.
  17. ^ (EN) Electron considered harmful, su Drew DeVault's Blog, 24 novembre 2016. URL consultato il 5 ottobre 2019.
  18. ^ (EN) Casper Beyer, Electron is Cancer - Commit Log, in Medium, 8 novembre 2017. URL consultato il 5 ottobre 2019.
  19. ^ 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).
  20. ^ (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).
  21. ^ (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).
  22. ^ balena-io/etcher, su github.com. URL consultato il 28 agosto 2018.
  23. ^ (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.
  24. ^ (EN) Electron Helper and branding, su techcommunity.microsoft.com, 20 maggio 2017. URL consultato il 5 ottobre 2019.
  25. ^ (EN) Building hybrid applications with Electron, su Several People Are Coding, 25 ottobre 2016. URL consultato il 5 ottobre 2019.
  26. ^ symphonyoss/SymphonyElectron, su GitHub. URL consultato il 5 ottobre 2019.
  27. ^ (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.
  28. ^ Microsoft/vscode, su GitHub. URL consultato il 5 ottobre 2019.
  29. ^ wireapp/wire-desktop, su GitHub. URL consultato il 5 ottobre 2019.
  30. ^ Electron.NET

Voci correlate modifica

Altri progetti modifica

Collegamenti esterni modifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica