The Tauri Page

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.

































expander -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- expander