跳转到内容

Electron (logiciel)

轻之舟百科,让知识轻装启航
Electron
Nom étranger Electron
Alias Atom Shell (ancien nom)
Développeur GitHub / OpenJS Foundation
Première version Avril 2014 (bêta)
Version stable 42.3.3 (2026)
Langage de programmation JavaScript, C++, Python
Système d'exploitation Windows, macOS, Linux
Plateforme Multiplateforme
Type de logiciel Framework de développement d'applications de bureau
Licence MIT License
Site officiel electronjs.org
Dépôt source GitHub

Vue d'ensemble

[编辑 | 编辑源代码]

Electron est un framework open source multiplateforme pour le développement d'applications de bureau. Son architecture de base combine le moteur de rendu Chromium avec l'environnement d'exécution Node.js, qui interagissent via un mécanisme IPC (communication inter-processus).[1] Les développeurs peuvent utiliser les technologies front-end Web pour créer des programmes de bureau capables d'accéder aux fonctions natives du système, notamment la lecture/écriture du système de fichiers, l'appel de notifications système et l'interaction avec le matériel.[2] Electron est compatible avec macOS (Monterey et ultérieur), Windows 10/11 et les principales distributions Linux, et prend en charge plusieurs architectures telles que x64 et ARM64.[3]

Historique

[编辑 | 编辑源代码]

Le prédécesseur d'Electron, nommé Atom Shell, était initialement un projet annexe développé par GitHub pour son éditeur de texte open source Atom.[1] En avril 2014, Atom Shell a été publié en version bêta ; avec l'influence croissante du framework dépassant celle d'Atom lui-même, le projet a été officiellement renommé Electron en 2015 et maintenu en tant que projet indépendant.[4] Par la suite, Electron a été confié à OpenJS Foundation et est continuellement maintenu et amélioré par une communauté active de contributeurs mondiaux.[2]

Architecture technique

[编辑 | 编辑源代码]

Composants principaux

[编辑 | 编辑源代码]

La nature technique d'Electron peut se résumer à une combinaison de Chromium et de Node.js.[1] Le noyau Chromium fournit les capacités de rendu HTML5 et CSS3 ainsi que le moteur JavaScript des navigateurs modernes ; l'environnement d'exécution Node.js permet à l'application d'accéder aux API système de bas niveau, au système de fichiers et aux modules réseau.[2] Les deux communiquent via le module IPC encapsulé par Electron entre le processus principal (Main Process) et les processus de rendu (Renderer Process).

Modèle de processus

[编辑 | 编辑源代码]

Electron adopte une architecture multi-processus. Le processus principal gère le cycle de vie de l'application, crée les fenêtres du navigateur et appelle les API natives ; chaque instance de BrowserWindow correspond à un processus de rendu indépendant, responsable du rendu de l'interface utilisateur de la page.[2] Ce modèle est cohérent avec l'architecture multi-processus de Chromium, isolant efficacement le risque de plantage d'une fenêtre individuelle.

Fonctionnalités

[编辑 | 编辑源代码]

Prise en charge multiplateforme

[编辑 | 编辑源代码]

Electron fournit une couche d'abstraction API unifiée. La même base de code peut être compilée en exécutables pour Windows (ia32, x64, arm64), macOS (Intel et Apple Silicon) et Linux.[3] Ses versions restent synchronisées avec les versions majeures de Chromium, garantissant des mises à jour de sécurité rapides.[2]

Accès natif au système

[编辑 | 编辑源代码]

Grâce à l'intégration de Node.js, les applications Electron peuvent appeler les interfaces natives du système d'exploitation, y compris les menus d'application personnalisés, les boîtes de dialogue, les notifications système, les raccourcis clavier globaux, le glisser-déposer de fichiers et le module de mise à jour automatique (autoUpdater), etc.[2]

Packaging et distribution

[编辑 | 编辑源代码]

La communauté Electron propose des chaînes d'outils telles qu'Electron Forge et electron-builder, qui prennent en charge la génération de formats de paquets spécifiques à chaque plateforme, comme .msi/.exe pour Windows, .dmg pour macOS et .rpm/.deb pour Linux.[2]

Applications typiques

[编辑 | 编辑源代码]

Le framework Electron est largement utilisé dans le développement de logiciels de bureau grand public et d'entreprise. Les applications représentatives incluent :[2][3]

  • Visual Studio Code : éditeur de code source multiplateforme développé par Microsoft
  • Atom : éditeur de texte open source de GitHub (projet à l'origine d'Electron)
  • Slack : outil de communication pour le travail en équipe
  • Discord : plateforme de messagerie instantanée et de communauté
  • GitHub Desktop : client de bureau officiel de GitHub
  • Postman : outil de test et de développement d'API
  • Figma : outil de conception d'interfaces (version bureau)
  • Microsoft Teams (ancienne version) : plateforme de collaboration de Microsoft

Controverses et évaluations

[编辑 | 编辑源代码]

En raison de l'utilisation du noyau Chromium, Electron est souvent critiqué pour la taille importante de ses applications et sa consommation mémoire élevée.[5] Certains éditeurs se tournent donc vers des alternatives plus légères ; par exemple, la nouvelle version de Microsoft Teams est passée d'Electron à Microsoft Edge WebView2 pour améliorer les performances et réduire la consommation mémoire.[6] Cependant, grâce à la faible barrière d'entrée de la pile technologique Web, à l'écosystème riche de npm et au soutien actif de la communauté, Electron reste l'une des solutions dominantes pour le développement d'applications de bureau multiplateformes.[5]

Références

[编辑 | 编辑源代码]
  1. ↑ 1.0 1.1 1.2 Electron跨平台桌面应用程序开发框架入门简介及学习笔记 - 知乎
  2. ↑ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 引用错误:<ref>标签无效;未给name(名称)为:1的ref(参考)提供文本
  3. ↑ 3.0 3.1 3.2 引用错误:<ref>标签无效;未给name(名称)为:2的ref(参考)提供文本
  4. ↑ 引用错误:<ref>标签无效;未给name(名称)为:0的ref(参考)提供文本
  5. ↑ 5.0 5.1 几个桌面应用开发框架比较:Electron、Flutter、Tauri - 21CTO
  6. ↑ 腾讯两则消息:公司的第一个专利是Pony马的成果,十年"屎山"终重构,QQ选用了友商放弃的Electron