Electron vs Tauri for Overlay Apps: Drag-Out, Focus, Memory
Both Electron and Tauri 2 can build overlay utilities on Windows, such as clipboard shelves, launchers and screen-edge docks. Electron has everything an overlay needs built in: native file drag-out (webContents.startDrag), click-through that still reports mouse movement, and windows that appear without taking focus. Tauri 2 produces far smaller installers and uses the WebView2 runtime already on Windows, but native drag-out needs a plugin and its click-through has no mouse-move forwarding. Memory is closer than the headline numbers suggest once you count WebView2's processes.
The short version
| Need | Electron | Tauri 2 |
|---|---|---|
| Rendering engine | Its own bundled Chromium | The system WebView2 runtime on Windows |
| Backend language | JavaScript or TypeScript (Node.js) | Rust |
| Installer size | Large: every app ships Chromium and Node.js | Small: Tauri says a minimal app can be under 600 KB |
| Drag files out to other apps | Built in: webContents.startDrag | Via plugin: CrabNebula's tauri-plugin-drag |
| Click-through overlay | setIgnoreMouseEvents, with a forward option on Windows and macOS | setIgnoreCursorEvents, no forwarding option |
| Show without stealing focus | showInactive(), non-focusable windows | focusable option and setFocusable() |
| Always on top | setAlwaysOnTop with levels on Windows and macOS | alwaysOnTop option and setAlwaysOnTop() |
| Permissions model | Your own preload and IPC design | Capabilities: sensitive window APIs must be granted explicitly |
What an overlay utility needs
Overlay apps live on top of other windows and must not get in the way. That brings requirements a normal app doesn't have:
- No focus stealing. Opening the overlay mustn't take keyboard focus from the app you're working in, or click-to-paste breaks.
- Click-through when idle. A collapsed overlay should let clicks pass to whatever is underneath.
- Hover detection. The app needs to know when the pointer approaches, even while it's ignoring clicks.
- Native drag-out. Dragging an image or file out should give the target app a real file, the same as dragging from File Explorer.
- Staying on top. The overlay has to stay above normal windows without fighting other always-on-top apps.
Drag-out: the biggest difference
Electron's webContents.startDrag(item) starts a native operating-system drag from your app with one or more file paths and a drag icon. Word, Slack, Photoshop and File Explorer receive it as an ordinary file drop. It's part of Electron's core API.
Tauri's core window API has startDragging(), but that moves the window itself. For dragging files out, the usual choice is CrabNebula's drag crate and its tauri-plugin-drag plugin, which exposes a startDrag function in JavaScript that takes file paths and an icon. It supports Windows, macOS and Linux (through GTK), is tested with Tauri 2 and is licensed under MIT or Apache-2.0.
So drag-out is possible in both. In Electron it's first-party; in Tauri it's a well-maintained third-party plugin you add and keep up to date.
Click-through and hover
Electron's win.setIgnoreMouseEvents(true, { forward: true }) makes a window ignore clicks. On Windows and macOS, the forward option still passes mouse-move messages to the page, so events such as mouseleave keep firing. An overlay can be click-through and still notice the pointer.
Tauri 2's setIgnoreCursorEvents(true) makes the window ignore cursor events, with no forwarding option. A Tauri overlay usually detects hover another way, for example by polling the cursor position from Rust or keeping a thin non-ignoring strip. This API also needs the core:window:allow-set-ignore-cursor-events permission, which isn't in Tauri's default set.
Focus and always-on-top
Both frameworks can show a window without activating it and keep it above other windows:
- Electron:
showInactive()shows a window without focusing it, the window'sfocusableproperty controls whether it can take focus, andsetAlwaysOnTop(flag, level)accepts levels such asfloating,statusandscreen-saveron Windows and macOS. - Tauri 2: the
focusableandfocuswindow options andsetFocusable()control focus, andalwaysOnToporsetAlwaysOnTop()keeps the window on top.setSkipTaskbar()hides the taskbar button on Windows.
On Windows, either framework may still need a small native call for edge cases, for example to apply extended window styles.
Memory and size: compare fairly
Tauri's installer advantage is real and large, because it doesn't ship a browser engine. The memory comparison is less clear-cut:
- An Electron app runs its own Chromium-based processes: a main process, one or more renderer processes and any utility processes it starts.
- A Tauri app on Windows runs its Rust process plus a WebView2 process group. Microsoft documents that this group includes a browser process, one or more renderer processes and helper processes such as the GPU process, the same model as Microsoft Edge.
- The WebView2 Evergreen runtime is shared by every app that uses it and is part of Windows 11, which saves disk space. When Edge and WebView2 are on the same version, their binaries can be hard-linked, which Microsoft says helps disk use, memory and performance.
To compare two apps, add up every process that belongs to each one, including msedgewebview2.exe processes for Tauri apps, and measure while idle and while in use. How to measure a clipboard app's idle RAM and CPU yourself shows how in Task Manager, and how much RAM a clipboard manager should use puts the numbers in context.
Security model
Electron gives you Node.js in the main process, and the security of the app depends on how you design the preload script and IPC: what the page can ask the main process to do. Electron's documentation covers sandboxing renderer processes.
Tauri 2 starts more locked down. Window and system APIs are granted through capabilities, so an app only gets the commands it declares. For users, either kind of app can be inspected; is your Electron clipboard app spying? How to check its IPC shows what to look for in an Electron app.
Which to choose
| Choose Electron if | Choose Tauri 2 if |
|---|---|
| File drag-out is the core interaction | Installer size and disk use matter most |
| You want click-through with hover forwarding | You're comfortable writing Rust for native parts |
| Your team is JavaScript-only | You want tighter default permissions |
| You need identical rendering on every machine | Relying on the system WebView2 version is acceptable |
How Edge Drop uses Electron
Edge Drop, the clipboard shelf made by the team behind this site, is built on Electron. Its overlay uses the pieces described above:
- Drag-out: images, image collections and files are dragged out with Electron's
webContents.startDrag, so other apps receive real files. Text and link cards aren't dragged; you click them to paste. - No focus stealing: the shelf window is created non-focusable, gets the Win32
WS_EX_NOACTIVATEstyle and is shown withshowInactive(). It only takes keyboard focus while you type in its search box or record a shortcut. - On top: it uses Electron's
screen-saveralways-on-top level and reasserts it every 2 seconds. - Memory-saving choices: GPU hardware acceleration is disabled, the V8 heap is capped at 512 MB, cards use 240-pixel image thumbnails, and long text is stored on disk rather than in memory.
There's no published measurement of Edge Drop's memory use, so measure it on your own PC if it matters to you. For a Tauri-based alternative, Edge Drop vs EcoPaste compares the two apps directly. The source is public if you want to read the code: how to build Edge Drop from source. Localisation is a separate job again; translating an Electron app into 31 languages covers plural rules, right-to-left layout and fonts.
FAQ
Is Tauri always lighter than Electron?
Its installers are much smaller. Running memory depends on the app and on how many WebView2 processes it uses, so measure both apps the same way before deciding.
Can a Tauri app drag files into Explorer?
Yes, with a plugin such as tauri-plugin-drag, which starts a native drag with file paths. Tauri's built-in startDragging() moves the window, not files.
Is Tauri 2 stable?
Yes. Tauri 2.0 was released as stable on October 2, 2024.
Related reading
- How to Check an Electron App's Security Settings (IPC)
- How to Measure a Clipboard App's Idle RAM and CPU Yourself
- EcoPaste vs Edge Drop: Features, Platforms and Footprint
- How to Build Edge Drop From Source on Windows
Sources
- webContents (Electron docs) —
startDragfor native file drag-out. - BrowserWindow (Electron docs) —
setIgnoreMouseEventswithforward,showInactive,focusable,setAlwaysOnToplevels. - Process Model (Electron docs) — main, renderer and utility processes.
- Process Sandboxing (Electron docs) — renderer sandboxing.
- Tauri 2.0 stable release (Tauri blog) — release date.
- What is Tauri? (Tauri docs) — minimal app size and system webview.
- Window API (Tauri docs) —
setIgnoreCursorEvents,setFocusable,setAlwaysOnTop,setSkipTaskbar,startDraggingand required permissions. - drag-rs and tauri-plugin-drag (CrabNebula, GitHub) — native drag-out for Tauri 2.
- Process model for WebView2 apps (Microsoft Learn) — WebView2 process group.
- Distribute your app and the WebView2 Runtime (Microsoft Learn) — shared Evergreen runtime, Windows 11, hard-linked binaries.
Deepender Yadav created Edge Drop and builds and tests it, from the edge-hover shelf to each release. A B.Tech Computer Science Engineering student, Deepender writes the Edge Drop guides, comparisons and developer posts, and checks product details against the app's source code.
GitHub · LinkedInCopy. Stack. Drop.
Transform your clipboard into an interactive edge shelf. Stack, pin, and drag assets into any app with zero friction.
Download for Windows Get from Microsoft Store
How to Install Guide · First 10 Minutes Guide · Drag & Drop Guide · Edge Drop vs Win+V · Support
Free · Lightweight · Privacy First