Consider Tauri instead of Electron

tauri
Tauri is a toolkit that helps developers make applications for the major desktop platforms - using virtually any frontend framework in existence. The core is built with Rust and the CLI leverages Node.js making Tauri a genuinely polyglot approach to creating and maintaining great apps.

3 Likes

Tauri uses rust as the backend, and the existing code is all js, the migration cost is unacceptable. Even if it can use the function of the external embedded bin, it still does not implement all the electron api

1 Like

If I recall correctly Tauri uses system webview - supporting this on multiple systems/versions would be a nightmare.

1 Like

It seems someone is doing related work.

Interesting, if one person on their own can convert vscode then maybe it's not too hard to migrate. He didn't post any code yet though.

3 months have passed, but it doesn’t seem to be really available

I've been looking at Tauri for the last couple of days. Migrating seems doable but it's a big project.

Firstly all electron-specific code needs to be removed and replaced with Tauri equivalents, where available. At this point we might lose spellchecking and maybe pdf export, though the latter should be possible to implement from scratch.

Then all js code needs to be converted to run inside webview. If my understanding is correct this means replacing native modules with tauri equivalents (possibly requires writing some things from scratch). Might require webpack or something like this.
It may not be needed if there's a way to run nodejs backend, not 100% clear on that.

Finally, there are build process changes but this should be relatively simple compared to everything else.

This all sounds interesting, if anyone wants to start I may be interested in helping out but on my own I don't feel I know js well enough to untangle Joplin's code.

5 Likes

What are your objectives for migrating to Tauri? I see at
GitHub - tauri-apps/tauri: Build smaller, faster, and more secure desktop applications with a web frontend. that an Android implementation has not been started yet, so migrating now would be premature. But any migration would be a sizeable task, considering all the available Joplin add-ons. So, a clear set of objectives would help in the discussion.

For fun of course - Rust is a much more interesting language than JavaScript. Up until recently I cared much about Joplin being faster and using less memory but this became less of a concern since I've upgraded my PC.

This is irrelevant as Electron is only used for the desktop version. Mobile uses react-native which is a completely unrelated technology. CLI is based on something else, not sure what exactly but it's neither Electron nor RN.

And to be clear -- no one is doing anything on this.

I've actually been keeping my eye on a brand new project (that is current extremely immature and lacks basic functionality) that aims to be a Notion replacement called app-flowy which is written in Rust but uses Flutter for its framework.

4 Likes

smaller, faster

IMHO, just fun is not worth the cost, especially the cost of migration - it may even be harder than redo

I think Tauri would be the best solution for this app since Tauri is a lightweight alternative to Electron which plans to allow for compiling to Android and iOS in the future. And Tauri apps are written with web languages which is what Joplin is written in, the transformation would not be a complete rewrite.

Another good solution is Flutter which allows for apps to be compile for desktop and mobile but will require a complete rewrite of Joplin since Fultter uses Dart as its programming language.