# Consider Tauri instead of Electron

**URL:** <https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621>\
**Category:** Development\
**Created:** [30 September 2021 02:20 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621 "2021-09-30T02:20:22Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![zzfnohell](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/zzfnohell/32/10197_2.png) [@zzfnohell](https://discourse.joplinapp.org/u/zzfnohell)\
**Post date:** [30 September 2021 02:20 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/1 "2021-09-30T02:20:22Z")

</div>

[tauri](https://tauri.studio/en/)  
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.

---

<div class="post-metadata">

**Author:** ![rxliuli](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/rxliuli/32/4083_2.png) [@rxliuli](https://discourse.joplinapp.org/u/rxliuli)\
**Post date:** [30 September 2021 04:51 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/2 "2021-09-30T04:51:28Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![roman\_r\_m](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/roman_r_m/32/3297_2.png) [@roman\_r\_m](https://discourse.joplinapp.org/u/roman_r_m)\
**Post date:** [3 October 2021 07:16 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/3 "2021-10-03T07:16:31Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![zzfnohell](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/zzfnohell/32/10197_2.png) [@zzfnohell](https://discourse.joplinapp.org/u/zzfnohell)\
**Post date:** [17 November 2021 07:15 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/4 "2021-11-17T07:15:57Z")

</div>

> <https://github.com/microsoft/vscode/issues/118308>
>
> Hey,
> 
> This is not really a feature request, but more of an overall suggestion.… I've been interested in something called \[tauri\](https://tauri.studio) for a while now, it's basically electron but written in Rust and is extremely lightweight, but not yet stable. It is also a lot more secure.
> 
> Moving away from electron and moving to tauri would be a big performance upgrade, allowing for more low-end devices to use VSC.
> 
> Obviously, this'd be a lot of work but I think it'd be worth it. I'm pretty sure something inside the \`vscode\` package for making extensions would have to change. I'd be happy to help if need be. 
> 
> This is not urgent at all, but, would be worth it in my opinion.

It seems someone is doing related work.

---

<div class="post-metadata">

**Author:** ![laurent](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@laurent](https://discourse.joplinapp.org/u/laurent)\
**Post date:** [17 November 2021 09:54 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/5 "2021-11-17T09:54:24Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![rxliuli](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/rxliuli/32/4083_2.png) [@rxliuli](https://discourse.joplinapp.org/u/rxliuli)\
**Post date:** [30 November 2021 15:24 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/6 "2021-11-30T15:24:41Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![roman\_r\_m](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/roman_r_m/32/3297_2.png) [@roman\_r\_m](https://discourse.joplinapp.org/u/roman_r_m)\
**Post date:** [2 December 2021 23:43 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/7 "2021-12-02T23:43:09Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![guy-rouillier](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/guy-rouillier/32/15581_2.png) [@guy-rouillier](https://discourse.joplinapp.org/u/guy-rouillier)\
**Post date:** [10 December 2021 05:06 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/8 "2021-12-10T05:06:05Z")

</div>

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.](https://github.com/tauri-apps/tauri) 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.

---

<div class="post-metadata">

**Author:** ![roman\_r\_m](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/roman_r_m/32/3297_2.png) [@roman\_r\_m](https://discourse.joplinapp.org/u/roman_r_m)\
**Post date:** [10 December 2021 09:46 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/9 "2021-12-10T09:46:47Z")

</div>

> [@guy-rouillier](#):
>
> What are your objectives for migrating to Tauri?

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.

> [@guy-rouillier](#):
>
> (...) an Android implementation has not been started yet, so migrating now would be premature.

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.

---

<div class="post-metadata">

**Author:** ![Daeraxa](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/daeraxa/32/6172_2.png) [@Daeraxa](https://discourse.joplinapp.org/u/Daeraxa)\
**Post date:** [10 December 2021 09:51 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/10 "2021-12-10T09:51:11Z")

</div>

> [@roman\_r\_m](#):
>
> For fun of course - Rust is a much more interesting language than JavaScript.

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](https://www.appflowy.io/) which is written in Rust but uses Flutter for its framework.

---

<div class="post-metadata">

**Author:** ![zzfnohell](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/zzfnohell/32/10197_2.png) [@zzfnohell](https://discourse.joplinapp.org/u/zzfnohell)\
**Post date:** [14 December 2021 08:18 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/11 "2021-12-14T08:18:56Z")

</div>

> [@guy-rouillier](#):
>
> 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.](https://github.com/tauri-apps/tauri)

smaller, faster

---

<div class="post-metadata">

**Author:** ![rxliuli](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/rxliuli/32/4083_2.png) [@rxliuli](https://discourse.joplinapp.org/u/rxliuli)\
**Post date:** [26 December 2021 07:45 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/12 "2021-12-26T07:45:48Z")

</div>

> [@roman\_r\_m](#):
>
> For fun of course

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

---

<div class="post-metadata">

**Author:** ![trymeout](https://avatars.discourse-cdn.com/v4/letter/t/9f8e36/32.png) [@trymeout](https://discourse.joplinapp.org/u/trymeout)\
**Post date:** [17 June 2022 05:08 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/13 "2022-06-17T05:08:55Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![trymeout](https://avatars.discourse-cdn.com/v4/letter/t/9f8e36/32.png) [@trymeout](https://discourse.joplinapp.org/u/trymeout)\
**Post date:** [6 October 2024 20:12 UTC](https://discourse.joplinapp.org/t/consider-tauri-instead-of-electron/20621/15 "2024-10-06T20:12:50Z")

</div>

Tauri 2.0 is not been released which supports making Windows, MacOS, Linux, Android and iOS apps using HTML, JS and CSS.
