Electron (anciennement connu sous le nom d' Atom Shell ) est un framework logiciel libre et open source développé et maintenu par OpenJS Foundation . Le framework est conçu pour créer des applications de bureau utilisant des technologies Web (principalement HTML , CSS et JavaScript , bien que d'autres technologies telles que les frameworks front-end et WebAssembly soient possibles) qui sont rendues à l'aide d'une version du moteur de navigateur Chromium et d'un back-end utilisant l' environnement d'exécution Node.js . Il utilise également diverses API pour activer des fonctionnalités telles que l'intégration native avec les services Node.js et un module de communication inter-processus .
Electron a été conçu à l'origine pour Atom et constitue le principal framework d'interface graphique derrière plusieurs autres projets open source, notamment GitHub Desktop , Light Table , Visual Studio Code , WordPress Desktop, et Eclipse Theia .
Architecture
Les applications Electron comprennent un processus « principal » et plusieurs processus « de rendu ». Le processus principal exécute la logique de l'application (par exemple, les menus, les commandes shell, les événements du cycle de vie) et peut ensuite lancer plusieurs processus de rendu en instanciant une instance de la BrowserWindowclasse, qui charge une fenêtre qui apparaît à l'écran en rendant le code HTML et CSS .
Les processus principaux et de rendu peuvent tous deux s'exécuter avec l'intégration de Node.js si le nodeIntegrationchamp du processus principal est défini sur true.
La plupart des API d'Electron sont écrites en C++ ou Objective-C et sont exposées directement au code de l'application via des liaisons JavaScript .
Histoire
En septembre 2021, Electron est passé à un cycle de publication de huit semaines entre les versions majeures pour correspondre au cycle de publication de Chromium Extended Stable et pour se conformer à une nouvelle exigence du Microsoft Store qui exige que les applications basées sur un navigateur soient dans les deux versions majeures de la dernière version du moteur de navigateur.
Electron publie fréquemment de nouvelles versions majeures à chaque nouvelle version de Chromium . Les trois dernières versions stables sont prises en charge par l'équipe Electron.
Usage
Les applications de bureau créées avec Electron incluent Atom , balenaEtcher , Eclipse Theia , Microsoft Teams avant 2.0, Slack , et Visual Studio Code . Le navigateur Brave était basé sur Electron avant d'être réécrit pour utiliser directement Chromium.
Réception
La critique la plus courante d'Electron est qu'il nécessite un logiciel volumineux lorsqu'il est utilisé pour des programmes simples. En conséquence, Michael Larabel a qualifié le framework de « notoire parmi la plupart des utilisateurs de bureau Linux pour être lourd en ressources, ne pas bien s'intégrer avec la plupart des bureaux et être généralement méprisé ». Les chercheurs ont montré que le large ensemble de fonctionnalités d'Electron peut être détourné par des acteurs malveillants ayant un accès en écriture aux fichiers JavaScript source. Cela nécessite un accès root sur les systèmes *nix et n'est pas considéré comme une vulnérabilité par les développeurs d'Electron. Ceux qui s'inquiètent du fait qu'Electron ne soit pas toujours basé sur la version la plus récente de Chromium ont recommandé les applications Web progressives comme alternative.