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.
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.