Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why Electron? #2

Closed
Yovach opened this issue Dec 15, 2023 · 3 comments
Closed

Why Electron? #2

Yovach opened this issue Dec 15, 2023 · 3 comments

Comments

@Yovach
Copy link

Yovach commented Dec 15, 2023

Hi,
I'm curious as to why the app is written with Electron and not with Tauri as it seems to be a website wrapper.

The Electron app requires a large file (a yet another chromium browser like VSCode and Discord) to be download whereas Tauri can be small

@flavienbonvin
Copy link
Collaborator

Hello, thanks for the feedback and the patience.

I can share some insights regarding why we went for Electron instead of Tauri. We started the project with a market overview of what our competitors and other companies were using, and the overwhelming majority is using either Electron or CEF. Here are a few reasons why we decided to go for Electron:

  • Electron is mature, it has been present for more than 10 years now and has supported many companies to build spectacular software (VSCode, Slack, One Password, Discord).
  • Electron Forge helps remove many of the pains of building custom Electron Builder configuration and significantly improved development speed.
  • All the Node.js and JS ecosystem of libraries is available to support development. This can range to security vulnerability scanning (electronegativity) to an .app creation for an uninstaller (mac-appify).
  • Electron is based on Node.js and Chromium. Chromium is one of the criticisms made against Electron, but it's also one of his strength. Using Chromium ensure a mostly consistent experience across all OSes.

Those are the main reasons we decided to go for Electron instead of alternatives such as Tauri. Tauri looks promising, but the lack of usage by big companies and the use of the OS web view (which could introduce unexpected bugs) was what made us go for Electron instead.

@Yovach
Copy link
Author

Yovach commented Jan 9, 2024

Hi Flavien,
Thank you for your reply and for the details which make the choice much easier to understand.

The fear I had was particularly related to memory usage for Proton desktop applications (Proton Pass, Proton Pass and Proton Drive) which can be expensive on a relatively old PC.

@flavienbonvin
Copy link
Collaborator

I did some testing when selecting the technology for the desktop application. I reviewed some of our competitors and other well-known Electron applications. Please keep in mind that the test is very not scientific.

As you can see, 1Password is the one that consumes the less RAM (they have a rust library and a light client). What will consume RAM with Electron is caused by Chromium, but the application that is run inside is much more impactful. 1Password did an excellent work and have a very light client that communicates with a light Rust backend.

App Tech Start RAM Logged RAM Storage MB
1password Electron 184 265 374.5
Proton Mail v0.1 Electron 203 375 221.1
Proton Mail v0.1 Tauri 273 364 41
Skiff React Native? 266 658 37.1
Slack Electron 327 546 766.9
Tutanota Electron 239 329 277.2
VS Code Electron 265 - 367.9

@traktuner traktuner mentioned this issue Feb 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants