Live data from Hacker News

Building a Slack/Discord alternative with Tauri/Rust

linen.dev

41–50 of 253 posts

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

#41
post #13
post #7

I remember reading about the performance-first development of Linen here on HN a few weeks ago. In that thread I also heard about Zulip for the first time. Both look good. I am not sure which to proselytize to my groups. Most groups I'm in just use Discord because of its momentum, but I really don't like Discord that much - it feels chaotic (I've learned it does have threading and maybe even forum mode now, but nobod…

I feel obligated to extoll enormous praise on Zulip. I was the person who forced us to try it for a week (so, take a pinch of salt), and people were apprehensive, but I floated the idea of going back to slack recently and was met with open hostility due to how nice Zulip is to use. It even exceeded my expectations, having only used it briefly with the rust community prior to the trial; basing the trial solely on othe…

> Jitsi is also extremely nice by the way and the pair of Jitsi and Zulip is extremely nice.

I'm a big fan of Jitsi. Haven't used it in any business settings, but do 5 person calls every so often for my TTRPG group and it works great.

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

#42
post #37

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.

I use IntelliJ, which is a Java + Swing app I think.

Initial release was 2001

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

#43
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…

The web browser is a feature, it allows developers to not have to code a second UI for their app, when they often have already built a web version. And it neatly end runs around having to make a cross platform UI toolkit that doesn’t look like hot garbage on every platform.

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

#44
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.

There are more than a few decent Java GUI apps out there, some built with swing, some with JavaFX, some with SWT, maybe we will soon see some using jetbrains compose. I would say that the developer experience isn't bad at all, but if you want to make a very complex or unique application, you will want to surround yourself with someone who knows those stacks very well (just like any other tech), the problem being that it's a dying breed.

If you want to make a small to mid-scale GUI, I'd argue that you'll be better off with a java toolkit than anything web based (tooling is awesome, there are RAD tools to prototype and iterate quickly, ...). The alternative I see in this space is PyQt/Qt for Python, but it's easy to shoot yourself in the foot with it and everyone knows how terrible packaging and shipping python is.

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

#45
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.

For me it's probably Ghidra or Jetbrains IDEA in 2023. Both are desktop, thought I could see the debate on whether or not developers are considered mainstream consumers. I use them on Linux and Windows, so I definitely get value out of their cross platform capabilities.

I use Eclipse-based tools at work (again, I can see the debate). It seems like Samsung's Smarthings (IoT platform) used to use Groovy, but has recently migrated away.

I also know you said desktop, but a weak argument could be made in favor of the (also weak) JVM connections of Android. I'd put forth that some Android usecases are basically former desktop usecases.

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

#46
post #24
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…

Chromium or Tauri, you are still building platform specific binaries either way.

Sure but with Electron you don't have to worry about browser differences. And you can use experimental web stuff.

If your app is primarily a website and you want to wrap it as an app then I guess Tauri makes some sense. E.g. something like Slack or Gmail.

If you're just using it as a way to make a desktop app then it makes more sense to use Electron unless your UI is very simple and download size is very important (e.g. something like the Raspberry Pi Imager app; though that uses QtQuick).

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

#47
post #13

Earlier quoted context omitted.

I feel obligated to extoll enormous praise on Zulip. I was the person who forced us to try it for a week (so, take a pinch of salt), and people were apprehensive, but I floated the idea of going back to slack recently and was met with open hostility due to how nice Zulip is to use. It even exceeded my expectations, having only used it briefly with the rust community prior to the trial; basing the trial solely on othe…

> Jitsi is also extremely nice by the way and the pair of Jitsi and Zulip is extremely nice. I'm a big fan of Jitsi. Haven't used it in any business settings, but do 5 person calls every so often for my TTRPG group and it works great.

I’m trying to get it to replace our Teams usage, but having Teams be the default when you create meeting invites is just too strong.

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

#49
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.

> 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/

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

#50
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.

My understanding is that Tauri allows building the presentation layer with standard web tech (HTML, CSS, JS) while using the system web view to render it. This has the major benefit over Electron that you don't have to ship all of Chrome in your binary. The downside is that now you have to support the peculiarities of the system web view (Safari, Chrome, Firefox, etc.)
Post reply on HN