I had tried tauri and was pretty pleased by the result. Tauri produces a single binary with the UI made in web frontend technologies we love to hate like React, Vue or even Svelte. It's magic is done in Rust.

Tauri's main competitor appears to be Electron. Although Electron is quite popular, and I have used it in production once, it's reputation seems to be plagued by large memory footprint and security vulnerabilities. On the other hand, everything Rust related is marketed more secure.

The bootstrapping can be done with create-tauri-app. It asks to take a look at the system requirements and Arch is included, but I remember having already in place. I do use some Rust related software that has to be built, for instance paru, so maybe this could be related.

npx create-tauri-app

For Svelte, my JS frontend of choice, one has to first choose @vitejs/create-app and the submenu offers svelte and svelte-ts, for typescript as well. The build process outputs the following error:

>> Running final command(s)
internal/modules/cjs/loader.js:883
  throw err;
  ^

Error: Cannot find module '~/tauri/sdfsfd/node_modules/esbuild/install.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
Error with command: node
Error: Error: Command failed with exit code 1: node ./node_modules/esbuild/install.js
    at ~/.npm/_npx/14052/pnpm-global/4/node_modules/.pnpm/create-tauri-app@1.0.0-beta.1/node_modules/create-tauri-app/dist/index.js:63:15
    at Generator.throw (<anonymous>)
    at rejected (~/.npm/_npx/14052/pnpm-global/4/node_modules/.pnpm/create-tauri-app@1.0.0-beta.1/node_modules/create-tauri-app/dist/index.js:40:65)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

I have yet to find how to get rid of it, but I tried to move forward in spite of it:

pnpm install

No problems here. Finally:

pnpm run tauri build

The build time on my machine is quite long:

time pnpm run tauri build

Resulted in 145.47s user 1.42s system 298% cpu 49.285 total.

Let's check the built executable's size:

du -h ./src-tauri/target/release/tarui-app

My system outputted 26M. I tried to run it:

./src-tauri/target/release/tarui-app

It worked even though the above error. I hope I will have the opportunity to explore more of the tauri features soon.

This is a 87th post of #100daystooffload.