Live data from Hacker News

Building a Slack/Discord alternative with Tauri/Rust

linen.dev

81–90 of 253 posts

Re: Building a Slack/Discord alternative with Tauri/Rust

#81
post #20

> One of the main core differences with Tauri is that it uses a Webview instead of using chromium like in Electron. This means that every desktop application doesn’t have to ship with chromium and can rely on the native browser’s webviews. The downside here is that because it is using Webview you have to deal with different quirks of different operating systems. ElectronJS is a cross-platform framework. It is bloated…

> why not going for a JVM-based technology? Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be downloaded and installed by mainstream consumers? Qt and other frameworks work pretty well (with their own flaws) but I'd simply never even consider the JVM as a viable option for desktop software. The last JVM app I installed was probably Minecraft in 2012.

> Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be downloaded and installed by mainstream consumers?

Does anyone actually build new desktop software for mainstream consumers these days?

JVM UI is "good enough", I've seen it used for businessey tools where the point is the functionality rather than the polish (including hobby tools). Honestly it may well be the best non-electron option once you think about the whole stack; with Qt you have to either write C++ and deal with that, or use the Python bindings and deal with that.

Re: Building a Slack/Discord alternative with Tauri/Rust

#82
post #20

> One of the main core differences with Tauri is that it uses a Webview instead of using chromium like in Electron. This means that every desktop application doesn’t have to ship with chromium and can rely on the native browser’s webviews. The downside here is that because it is using Webview you have to deal with different quirks of different operating systems. ElectronJS is a cross-platform framework. It is bloated…

IMO native widgets are dead. Users have become accustomed to the graphical gimmicks that are easy with a full-blown browser rendering engine.

Even a resizable background image is really hard to do with pure native widgets.

This means cross-platform libraries that wrap native widgets are dead as well. Now you need to ship your own rendering engine, and suddenly an entire browser looks reasonable. E.g. JavaFX isn't a featherweight either...

Re: Building a Slack/Discord alternative with Tauri/Rust

#83
post #14

> Tauri is an open-source electron alternative that is built in Rust. I'm not familiar with Electron development, but isn't the code mostly JavaScript in that case? Does Rust have a meaningful contribution to the performance and the safety of the codebase here? I feel like Rust part would be "spin up the WebView". There is no code in the repository, so I couldn't check that out myself.

In Electron you run a node 'server' and browser JS client (packaged up into one app). Tauri uses rust for the backend instead.

So yes, in Electron 'the code is mostly JavaScript', but Tauri's offering 'let's do a piece of that in rust instead'. (And I suppose you could do the frontend in rust via wasm, but probably true of Electron too.)

It's not just Tauri itself as a development tool that's written in rust.

Re: Building a Slack/Discord alternative with Tauri/Rust

#84
The discord sync feature combined with it being google indexable does seem nice but is there a way to control what can be indexed? Some discord channels are somewhat private on purpose even if the entire server is public. So can you control which channels are indexable?

Re: Building a Slack/Discord alternative with Tauri/Rust

#85
post #15

Earlier quoted context omitted.

I see it used for communities

The parent said "meant for communities" and not "used for communities". The biggest difference I see is that Discord is "free" for communities, or at least the model is different: an individual user can apparently pay to contribute to the server and "unlock" features. Also I think Discord just comes with history for free, which is a killer feature in many communities. Slack is more "meant for companies" in the sense…

But that's like saying 'Discord isn't meant for communities, it's meant for gaming communities'. They both caught on beyond their original market.

(And funnily enough, aren't they both pivots out of a company doing something else? Discord a game and Slack some other start-up?)

Re: Building a Slack/Discord alternative with Tauri/Rust

#86
I build and ship a production application using tauri and linux support is the most painful experience I had in a long time.

They use WebKit GTK which is really not a good fondation IMO, its hard to test for all versions, its much slower than other browser, it has weird bugs.

In general the idea of not shipping a browser bundle is nice, in practice it doesn't really work for a startup. It's just too much unrelated testing and debugging work you need to do to support old outdated systems.

We were very excited to use tauri since we are a rust shop, but we are strongly considering moving to electron unless we get a way to bundle a renderer.

Re: Building a Slack/Discord alternative with Tauri/Rust

#87
post #35

Too bad Elixir/Rust wasn’t used. It seems to be the perfect platform for a communications service (and is also what Discord is built on). And before that, WhatsApps was strictly Erlang.

Yeah I agree. People should be building their Slack alternatives in Elixir at the very least. It's the tried & true, no brainer, boring technology stack for highly scalable, performant, concurrent applications.

Re: Building a Slack/Discord alternative with Tauri/Rust

#88
post #81

Earlier quoted context omitted.

> why not going for a JVM-based technology? Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be downloaded and installed by mainstream consumers? Qt and other frameworks work pretty well (with their own flaws) but I'd simply never even consider the JVM as a viable option for desktop software. The last JVM app I installed was probably Minecraft in 2012.

> Not to pick on the JVM, but does anyone actually build new desktop software for the JVM that's meant to be downloaded and installed by mainstream consumers? Does anyone actually build new desktop software for mainstream consumers these days? JVM UI is "good enough", I've seen it used for businessey tools where the point is the functionality rather than the polish (including hobby tools). Honestly it may well be the…

> Does anyone actually build new desktop software for main stream consumers these days?

You’re in a thread about some people that built a new piece of desktop software…

Re: Building a Slack/Discord alternative with Tauri/Rust

#89
post #58

Earlier quoted context omitted.

> Does Rust have a meaningful contribution to the performance and the safety of the codebase here? It apparently has a tremendous benefits: https://tauri.app/v1/references/benchmarks/

According to those benchmarks Tauri still issues about 25000 syscalls at startup and needs about 300mb of ram for a “hello world” app. That might be slimmer than electron, but it’s still ridiculous given what it’s doing.

Every browser tab pretty much takes ~100mb. So IMO that’s a pretty reasonable amount for an app to take. 3x that seems fine.

Re: Building a Slack/Discord alternative with Tauri/Rust

#90
post #54

Earlier quoted context omitted.

Initial release was 2001

Looks like Java is working pretty well for them then.

Ok the other hand jetbrains is developing new IDE - Fleet, that’s supposed to compete with VSCode - not sure if it’s written using JVM stack for that
Post reply on HN