top | item 39486181

(no title)

martpie | 2 years ago

I am currently working on porting Museeks [0] from Electron to Tauri 2.0, mainly to reduce the memory and app size footprints, which are the main things everybody complains about with Electron.

What I really like:

- the dev experience is stellar and comes out of the box. No need to setup binary compilation, webpack, vite, hot-reload, TS compilation for back-end, etc yourself. You can pick your favorite JS framework with Vite, during setup, or use a Rust frontend (kind of what electron-forge is doing, but it is buggy, and landed yeaaaars after Electron was released).

- the architecture makes sense (commands, security, plugins, all very well-designed)

- they provide official plugins for common-usecases (SQL, config, etc)

- Rust is fun and interesting to learn for folks like me used to high-level languages like JS or Python

What I don't like as much:

- facing webview-specific UI issues (feature X does not work on Safari, Y not on gtk-webview etc), with Electron, you know if X works on Windows, it will work on Linux or MacOS

- some rough edges with the framework or the ecosystem (not as mature or dev-friendly as npm's or Electron), but the crates (and Tauri's) maintainers are very friendly and reactive.

- the focus on mobile apps, It seems like a very different space, and it feels weird to try to build with big mashup framework. I would rather have them work on more integrations, but whatever.

- changes in the Rust backend can take minutes to compile, and rust-analyzer is damn slow.

Overall I'm really happy and having a lot of fun. I will keep working on this port and release it when I can. Kudos to the Tauri team, what you are building is awesome :)

[0] https://museeks.io

discuss

order

Sytten|2 years ago

Been using it in production for over 2y, expect a lot of complaint from Linux user. Webkitgtk is really behind in terms of performance, standard support, etc. And it is not on MDN compatibility list so good luck finding what is available. It is to the point where we marked it as experimental for our users and considered switching to electron (we didnt yet).

Also you can expect hard to reproduce bugs on X version of Y OS that are not reproducable anywhere else. It's a PITA to maintain even for people used to the pain of cross browser problems. Just yesterday I got a user on macos 12 reporting not being able to write in some input fields, no error in the console. Now I need to figure out how to have a VM of that macos version with the specific patch for the webview version to match to reproduce, nightmares I tell you.

Otherwise it is decent and we are a rust shop so it makes sense for us. But IMO it is impossible they will gain any market traction in bigger businesses until we have standard webview packaged into the binaries like electron.

martpie|2 years ago

Thank you very much for sharing your experience. I am developing on macOS so I have yet to face the Linux issues, but I have already faced a few issues on macOS, that require editing some plists file (switching media outputs for example), which made me "sigh" a couple of times.

In Electron, I got my fair share of Linux issues, but nothing critical (tray appearing twice, this kind of things).

This is the Electron paradox: this is the best platform to develop cross-platform apps, because it just works. Yet people hate it (for valid reasons).

Klonoar|2 years ago

I feel like I've seen mention of them looking at Servo long term - but don't quote me and please someone correct me if I'm wrong.

WebkitGTK being so lackluster is indeed a problem - I ran into this of all things in a wxWidgets project. Eventually wound up ripping it out and replacing it with custom screens since it was more work to maintain and work around issues than to just sit down and write the UI.

cute_boi|2 years ago

i think for such case Tauri should allow to embed engine like chromium blink for cases like windows 7 or xp.

01HNNWZ0MV43FF|2 years ago

Does MacOS not have an equivalent of the Linux AppImage build that bundles the webview?

amenhotep|2 years ago

> changes in the Rust backend can take minutes to compile, and rust-analyzer is damn slow.

Do you find that if you run cargo build, then trigger RA - without even making any changes - then run cargo build again, it recompiles a bunch of dependencies?

If so, you might find that pinning anyhow to =1.0.77 fixes this! There's a bug somewhere in the interaction between RA, cargo and some crates including afaict mostly dtolnay's which leads to RA runs causing the crate build script to think that RUSTC_BOOTSTRAP is set and they should invalidate the fingerprint and recompile.

Perhaps totally unrelated :) but I ask because I just spent days chasing this down only to find, once in the possession of the important keywords, that some helpful fellow had already filed a PR with rust-analyzer that purports to fix it and so my efforts were probably pointless. But if I can save some random guy a few minutes of compile time before the fix is released then it's worth it, right?

amenhotep|2 years ago

(also thiserror =1.0.52!)

temeritatis|2 years ago

> mainly to reduce the memory and app size footprints, which are the main things everybody complains about with Electron

Those are annoyances. But the way an app feels and behaves is the main culprit IMHO. I'd rather have a heavy app that looks and feels native than the other way around.

I don't know about museeks tho. Never tried it. But best of luck with the port in any case!