Software Engineer and full-time Rustacean. While Rust is my primary language, I am also fluent in Python and Typescript. I'm also currently making a game with Godot using C#.
Tauri depends upon Microsoft Edge Runtime2 and not bulky core apps like Electron.JS depends on chromium.
Actually, WebView2 uses the default rendering engine provided by the OS, which on Windows is now chromium (Edge) and on MacOS is webkit (safari). On Linux it will be either webkit or chromium depending on whether you're using Gtk or Qt.
The size of the binary is much smaller with Tauri, but the actual memory footprint while the app is running will be about the same, since (on Windows at least) you're still running chromium to render your app.
That said, Tauri itself is written in Rust and the back-end is likely faster than Electron. It's also simpler for your app to communicate with the back-end with Tauri, in my opinion.
That's what makes the app faster and thats all that matters...
I tend to disagree.
It also comes with a particular disadvantage: You have absolutely NO control over the webengine used to render your application.
Just go back in time a few years, when Internet Explorer was still the default browser on Windows and it powered the WebViews in Windows as well.
Users of Electron apps could enjoy some fantastic modern applications, while Tauri apps (assuming Tauri would've existed back then, of course) would have to limit their functionality to be compatible with Internet Explorer (and/or ship polyfills, yikes!).
While this problem isn't as dramatic as it used to be, there are still some differences between the implemented features in each browser and you as an app developer rely on the OS developers to update their webrendering engine in order to fix (security) bugs, ship new features, etc.
With Electron, you ship the rendering engine by yourself. YOU have the control over the version of the rendering engine you are shipping. What features it has implemented, what bugs are fixes, what security flaws are closed.
Speed is a pretty significant factor, but it's absolutely not the single most important thing.
As in every project you should analyze which technology suits your project the most.
Software Engineer and full-time Rustacean. While Rust is my primary language, I am also fluent in Python and Typescript. I'm also currently making a game with Godot using C#.
I think Tauri has its place but if it came with an option to always bundle chromium instead of relying on webview then I'd probably choose that option every time.
Software Engineer and full-time Rustacean. While Rust is my primary language, I am also fluent in Python and Typescript. I'm also currently making a game with Godot using C#.
I agree that still having chromium run like that can be a pain, but wouldn't the reliance on webview mean that multiple apps on tauri would use one instance instead of each one having it embedded into the app?
Software Engineer and full-time Rustacean. While Rust is my primary language, I am also fluent in Python and Typescript. I'm also currently making a game with Godot using C#.
You save on binary size but remember chromium runs each page in its own process anyway.
I'm actually not sure if parts of the webview renderer are shared. There are obvious security reasons why you might not want this. But if someone knows the finer details of how this works I'd be keen to know.
I'm a huge fan of tauri, having used it recently and found it to mostly just work. It allowed me to write a desktop app in rust without using electron :D
Even if absolutely no runtime state is shared between consumers, the filesystem-backed executable code of the webview is, which also means it's going to end up in cache more often vs running four applications using four separate but barely distinguishable versions of chromium.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Actually, WebView2 uses the default rendering engine provided by the OS, which on Windows is now chromium (Edge) and on MacOS is webkit (safari). On Linux it will be either webkit or chromium depending on whether you're using Gtk or Qt.
The size of the binary is much smaller with Tauri, but the actual memory footprint while the app is running will be about the same, since (on Windows at least) you're still running chromium to render your app.
That said, Tauri itself is written in Rust and the back-end is likely faster than Electron. It's also simpler for your app to communicate with the back-end with Tauri, in my opinion.
That's what makes the app faster and thats all that matters...
I tend to disagree.
It also comes with a particular disadvantage: You have absolutely NO control over the webengine used to render your application.
Just go back in time a few years, when Internet Explorer was still the default browser on Windows and it powered the WebViews in Windows as well.
Users of Electron apps could enjoy some fantastic modern applications, while Tauri apps (assuming Tauri would've existed back then, of course) would have to limit their functionality to be compatible with Internet Explorer (and/or ship polyfills, yikes!).
While this problem isn't as dramatic as it used to be, there are still some differences between the implemented features in each browser and you as an app developer rely on the OS developers to update their webrendering engine in order to fix (security) bugs, ship new features, etc.
With Electron, you ship the rendering engine by yourself. YOU have the control over the version of the rendering engine you are shipping. What features it has implemented, what bugs are fixes, what security flaws are closed.
Speed is a pretty significant factor, but it's absolutely not the single most important thing.
As in every project you should analyze which technology suits your project the most.
Agreed.
I think Tauri has its place but if it came with an option to always bundle chromium instead of relying on webview then I'd probably choose that option every time.
You mean like electron does? We have gone full circle...
Exactly. I don't have any issue with electron bundling chromium.
But Tauri being in Rust is nicer for the backend.
I agree that still having chromium run like that can be a pain, but wouldn't the reliance on webview mean that multiple apps on tauri would use one instance instead of each one having it embedded into the app?
You save on binary size but remember chromium runs each page in its own process anyway.
I'm actually not sure if parts of the webview renderer are shared. There are obvious security reasons why you might not want this. But if someone knows the finer details of how this works I'd be keen to know.
I'm a huge fan of tauri, having used it recently and found it to mostly just work. It allowed me to write a desktop app in rust without using electron :D
Even if absolutely no runtime state is shared between consumers, the filesystem-backed executable code of the webview is, which also means it's going to end up in cache more often vs running four applications using four separate but barely distinguishable versions of chromium.