Electron 是一套以 Chromium 為基底的開發框架,可快速開發跨平台的應用程式。
特色
- Electron 框架可以讓開發者使用 JavaScript, HTML 和 CSS 開發跨平台的應用程式,比起以往用 WinForm、Qt 等 UI 框架比起來,能做出更美觀的操作介面。
- 現在有許多熱門的應用程式都是使用 Electron 建立的,例如 VS Code, Slack 等,詳細的清單可參考 Electron (software framework) - Wikipedia。
- 使用 Electron 開發的應用程式,通常檔案會比一般程式更大,原因是因為有把 Chromium 包進去。
- 進一步參考:Introduction - Electron。
架構
- 基於 Chromium 的多程序 (Process) 架構:包含主程序,作為程式的進入點;Renderer 程序負責將網頁繪製出來;此外還有 UtilityProcess 等其它的程序。
- Context Isolation 安全機制:隔離 Preload Scripts 和 Electron 的內部邏輯。
- 跨程序通訊 (IPC):因為 Electron 分成多個程序,因此需要透過 IPC 的 Channel 溝通,以實作如主程序傳送訊息給 Renderer 的常見功能。
- Process Sandboxing:建立沙盒限制惡意程式只能存取有限的系統資源,需要存取額外的資源時,需要請求權限。
- MessagePorts:可以用於 Renderer 間的溝通,或實作 response stream,一次傳送一部份資料。
- 進一步參考:Process Model - Electron 和該章節的其它頁面。