Remix.run Logo
ameliaquining 8 days ago

I was expecting the answer to be "code size", since that's Tauri's largest concrete advantage. Instead it's because they want to be able to directly run performance-sensitive Rust code in the main process, and because Tauri has a built-in library for spawning sidecar processes that's slightly higher-level than what Electron offers, at least if you want the process-spawning logic to live in the renderer process.

The latter point seems real but kind of minor. For the former, I'm curious whether they considered using napi-rs or neon to call Rust code from within a Node.js process.

iparaskev 8 days ago | parent [-]

TBH no we haven't considered them. Our initial approach is to keep things as simple as possible and have everything performance critical in one language and if possible in the same process (which is not the case for now). Having said that, if we see that there are better alternatives that will make the project easier to maintain and develop, we will apply them.

ameliaquining 7 days ago | parent [-]

If the big architectural differences between Electron and Tauri came out in Electron's favor for your project (i.e., if differences between rendering engines were a real problem in practice), then I'd say it would almost certainly be a mistake to choose Tauri just to avoid having to do FFI. Of course, if rendering engine differences aren't a problem in practice, then the choice is much lower-stakes and what you're currently doing will probably be fine.

iparaskev 7 days ago | parent [-]

I totally agree. If it turns out that we are getting too many bugs because of the different web engines, then we will ditch tauri for sure.