Non-Commercial Open Source — Early Development

Electron API Compatibility

How close is Gelectron to being a full drop-in replacement for Electron? Here's the honest answer.

0% compatible
100% target
Fully Working — 3 modules Partially Working — 15 modules Stubs — 6 modules Missing — 36 modules
3
Fully Working
5% of modules
15
Partially Working
Core methods work, gaps remain
6
Stubs Only
API exists, does nothing
36
Missing Entirely
Not started
60
Total Electron Modules
Across all categories

Fully Working

These modules are fully functional and ready to use.

app
All methods, properties, events, quit lifecycle, dock, badge, GPU, about panel, secure keyboard entry, window tracking
ipcMain
handle / handleOnce / on / once / removeHandler, full EventEmitter
clipboard
readText/writeText/readHTML/writeHTML/readRTF/writeRTF/readImage/writeImage/readBookmark/writeBookmark/readFindText/writeFindText/clear/availableFormats/has. Sync via Unix FIFO channel (macOS/Linux) or async bridge (Windows). RTF/bookmark/find-text/formats via NSPasteboard on macOS

Partially Working

Core functionality exists but key features are missing.

screen
~70%
Works: getPrimaryDisplay/getAllDisplays/getDisplayMatching/getCursorScreenPoint/getMenuBarHeight via Rust bridge (tao)
Missing: Display event listeners (display-added/removed/metrics-changed)
nativeTheme
~60%
Works: shouldUseDarkColors (getter + method), themeSource (getter/setter), shouldSystemUseDarkColors, queries Rust for system theme
Missing: Theme change events, accent color detection
BrowserWindow
~60%
Works: create, show, hide, focus, min/max/close/destroy, setTitle, setSize, loadURL, loadFile
Missing: DevTools, navigation, capturePage, print, printToPDF
Menu
~60%
Works: buildFromTemplate, append, insert, getMenuItemById, native setApplicationMenu via muda, _serialize
Missing: Click events from native menu, role-based predefined items
MenuItem
~70%
Works: All properties: id, label, type, role, accelerator, enabled, visible, checked, submenu, click
Missing: Role auto-behavior (copy/paste/undo etc.)
dialog
~40%
Works: showOpenDialog, showSaveDialog, showMessageBox, showErrorBox
Missing: Native dialogs not wired — Rust has no dialog commands
shell
~50%
Works: openExternal, openPath (Node mode)
Missing: moveItemToTrash deletes permanently, shortcut stubs
Notification
~25%
Works: API surface complete, show via browser Notification API if available
Missing: No native OS notification integration
nativeImage
~45%
Works: createFromPath/Buffer/DataURL, toDataURL, getSize
Missing: resize/crop pixel transform, proper toPNG/toJPEG
contextBridge
~50%
Works: exposeInMainWorld with deep freeze
Missing: No real world isolation, no proxy serialization
webContents
~50%
Works: loadURL, loadFile, send, executeJavaScript, reload, session stub
Missing: Navigation history, DevTools CDP, zoom, print, capturePage
ipcRenderer
~70%
Works: invoke, send, sendSync, on, once, removeListener
Missing: Bridge not always wired, sendSync returns undefined
net
~30%
Works: fetch delegates to globalThis.fetch
Missing: No net.request(), no ClientRequest API
process (polyfill)
~30%
Works: pid, argv, env, platform, versions, cwd, nextTick
Missing: memoryUsage, cpuUsage, uptime, kill
autoUpdater
~70%
Works: setFeedURL, checkForUpdates, downloadUpdate, quitAndInstall, checkForAndNotifyIfAvailable; events (update-available, download-progress, update-downloaded, error, before-quit-for-update); sha512-verified download, staged atomic apply on relaunch
Missing: Packaged-mode only (native binary + launcher), needs a hosted latest.yml feed; no differential updates, no-op in dev/Node fallback

Stubs Only

The API exists but does nothing useful.

Tray
API surface present, no native system tray
safeStorage
Base64 encoding, not real encryption
session
defaultSession + fromPartition stubs, all no-ops
systemPreferences
Hardcoded dark mode / accent color
powerMonitor
getSystemIdleState returns 'active', no real monitoring
globalShortcut
register always returns true, does nothing

Missing Entirely

These 36 modules have not been started.

BaseWindow BrowserView contentTracing crashReporter desktopCapturer ImageView inAppPurchase MessageChannelMain netLog powerSaveBlocker protocol pushNotifications ServiceWorkerMain sharedTexture ShareMenu TouchBar utilityProcess View WebContentsView webFrameMain crashReporter (renderer) sharedTexture (renderer) webFrame webUtils remote webviewTag navigation-history parent-port web-request web-socket window-open local-ai-handler
!

Known Gaps in Existing Modules

Features that are missing from modules listed above.

BrowserWindow DevTools, navigation, capturePage, print, printToPDF
Menu Native click events not wired back to JS, no role-based predefined items (copy/paste/undo)
MenuItem Role auto-behavior (copy/paste/undo etc.)
webContents Navigation history, DevTools CDP, zoom, print, capturePage
nativeImage resize/crop pixel transform, proper toPNG/toJPEG

Want to help?

Gelectron is a non-commercial, community-driven open source project. Every contribution helps close the gap.