A bit of a run down of the experience I have had with using Tauri
General:
Tauri approaches app development in a similar vein to Neutralino in that it leverages the inbuilt browser view of the OS (WebKit for MacOS) rather than shipping a modified browser as per NW.js and Electron (Chromium based).
This of course means that lightweight apps are possible.
The core of Tauri is based on Rust and a JS API is available for the frontend allowing apps to be largely developed with HTML/JS/CSS if desired. Some features are not yet ported to JS and require Rust usage but real indepth Rust knowledge is not required generally.
Apps are compiled using Tauri into a single binary for packaging (MacOS) with the Resources folder only used for the app icon.
Unlike NW.js and Electron which both bundle a modified Chromium browser Tauri uses the native browser on the particular platform (eg: MacOS - Safari-Webkit) so the shipped application is massively lighter in terms of size.
Note: I have mentioned Electron here but I prefer NW.js (even though the world is being drawn into the Electron Black Hole) so any comparisons of Tauri will tend to be with NW.js.
Tauri vs NW.js:
Tauri
Pros
- Small bundle size of apps
- Easy to build binary for platform
- GitHub Discussions
- Fairly active dev
Cons
- Single binary - always need to compile
- Not all features available to JS API
- xxxx
- Examples minimal
- Possible inconsistent browser rendering across platforms (shouldn't be big problem now with standardized browsers)
- Transparency not supported for widget style apps (on roadmap)
- xxxx
- xxxx
- xxxx
NW.js
Pros
- Node ecosytem support
- Updated prebuilt binaries for all platforms
- Docs relatively good
- Google Groups forum
- Gitter forum
- Discord chat
- Consistent browser rendering across platforms
- Transparency supported for widget style apps
- Easy to build starter app (start file is either html/js)
Cons
- Dev team very small (largely 1 person with occasional support from 2/3 others)
- Community limited
- Large bundle size of apps
- Loses a lot of interest to Electron as the latter is 'popular'
In regard to the above comparison the Community support for both projects is quite limited.
For NW.js there are a number of supporting projects (packagers/updaters/etc) that exist but are struggling in the stampede to Electron.
There are probably a lot more pros/cons but I have only tried a few scenarios.
eg:
standalone PHP web server app - NW.js OK, Tauri ???
transparent widget app - NW.js OK, Tauri NO
express server app - NW.js OK, Tauri ???
static web encapsulation - Both OK
apps using node modules - NW.js OK, Tauri ???
note: may be possible via extension API
Regarding the size thing the difference in app size is dramatic. eg: a very simple app in Tauri was xxMB whereas the same app in NW.js weighed in at 134.4MB.
For me I can generally live with the larger NW.js builds for complex apps but once multiple apps are running or small widget style apps are used then the size becomes an issue.