Replies: 1 comment 5 replies
-
Funny you mention it, we actually did a pretty deep investigation into Wails when we were rearchitecting our app this summer, however we didn't find it sufficient for production use, unfortunately. I'm copying over some old Discord messages summarizing of our findings and rationale for sticking with Electron: From @sawkaappreciate the feedback. we actually did a deep dive into using Wails (same technology as Tauri, using webviews, except using a Go backend). surprisingly the performance was much worse than electron. it caught us by surprise, and we tried multiple configurations (sidecars, in-proc, out-of-proc, etc.). the only advantage (performance wise) was that it had very small download sizes. i think tauri/wails can be good for some apps, but performance and the robustness of the ecosystem is much better on electron. cross-platform story is much better as well. there's a lot of talk about security as well. most of that talk is completely outdated and only applies if you run electron in an insecure mode (exposing nodejs bindings into the renderer processes -- which of course we dont do). running electron using isolation gives us the same protections that you get running chrome (or Tauri). Also, the fact that Google owns Chrome, and there is Slack (Salesforce), Discord, VSCode (Microsoft), etc. all running on electron means it gets security updates fast. I have no reason to believe Tauri is insecure, but I know that Chromium has a lot more eyeballs on it and a lot more vested interest in keeping it patched and up to date. From meAlso the impacts of the download/install size for Electron are minimized on Linux when using a package manager, since the underlying Electron binaries get reused. (We're still working on getting the package manager entries set up, but those should be coming soon!) For macOS, a big part of the large size is the universal binary, which is in fact not universal, it just packages the arm64 and amd64 binaries together in one distributable. This means you are basically downloading two apps (and two Chromium binaries, and two Node binaries), which sucks. We're working on separating out the two architectures, but first we need to update our website to detect your local architecture and serve the correct download link. I was pushing really hard for us to try and get Wails working, but yeah as Mike said it wasn't even close (we're talking backend calls that would take seconds on Wails and milliseconds on Electron, animations that dropped more frames than they rendered, etc.). We will absolutely keep an eye on these projects to see if they manage to address some of our concerns. If it ever reaches a maturity level that satisfies us, we'll do our best to migrate over. I'd love to be in a place where we can contribute to that success, but we're a really small team so for now we can't afford to make such investments when there's a really performant option already available. |
Beta Was this translation helpful? Give feedback.
-
Hey, I just stumbled across this repo and looking at the languages used, I thought I was looking at a wails project.
Turns out this is based on electron instead, but I think wails would be a perfect fit.
I am not associated with the wails project but I love the idea of ditching electron without having to learn rust for tauri.
So this is just a suggestion to check wails out :)
Beta Was this translation helpful? Give feedback.
All reactions