Show HN: Halloy – Modern IRC client (github.com)
I started working on Halloy back in 2022, with the goal of giving something back to the community I’ve been a part of for the past two decades. I wanted to create a modern, multi-platform IRC client written in Rust.
Three years later, I’ve made new friends who have become core contributors, and there are now over 200 people idling in our #halloy channel on Libera.
My hope is that this client will outlive me and that IRC will live on.
44 comments
[ 1.6 ms ] story [ 59.1 ms ] threadReally impressive work though, you should be proud!
Thanks for making a client.
I remember being a high school student and having an amazing physics conversation on IRC that included a description of Flatworld that really fascinated me.
Will give this a go because I would always prefer a native client in the first place and this looks excellent!
It's fast and robust. The toml config is also straight forward.
Highly recommended!
PS: I preferred the old (bird) icon
Can someone please tell me what special about Rust? Say, why aren't desktop application popular based on say Python?
On tangent, ive seen a lot of terminal base application in typescript and go
Go is kind of verbose and just a bit hostile towards fancy structural features and complex abstractions. I think rust is kind of the opposite of GO in a lot of ways, even though they theoretically should be targeting a lot of the same use-cases.
There's also something akin to the Python Paradox here: https://www.paulgraham.com/pypar.html
Rust is an interesting and intellectually stimulating language, it lets you use your brain to write clean and pretty code, and rewards you for making clean powerful abstractions.
Java and Go are both anti-intellectual languages that reward you for turning off your brain and writing the most verbose awful code you can think of, and will leave anyone who has ever studied type-theory with a massive migraine for hours after each coding session (go moreso than java).
I think those two factors, C bindings, and whether they respect the programmer's intelligence, are the main reason.
AWT - still actually under-pining the others, but very ugly to work with
Swing - basically runs on top of AWT, with the same design model, plays badly with it. Is hard to write in a testable way, is prone to embedding business logic in UI components
JavaFX - all the worst parts of business Java with all the worst parts of XML and also the worst parts of a game engine. Now you need to care about 'adding a scene to a stage'.
The principle core technology that made Java good was applets. Since they were killed by mobile, the reason for delivering a Java app is functionally zero. You will need to ship a JVM which you need to update alongside your app.
Java is a great back-end development language and a really poor GUI language.
These days you should either ship an Electron app or native code.
The project is even often cited as a good iced_rs code reference repo.
What I like about iced_rs over Qt is that you can write all your code in a single language in whichever style you like. As opposed to Qt which requires you learn an obtuse scripting language (qml) ontop of Cpp and locks performance improvements behind commercial license.
[0] https://iced.rs/
https://github.com/iced-rs/iced
If you're interested in building a GUI app in Rust, I encourage you to go through the examples and showcase apps like halloy
and if you get stuck, can ask our chill and helpful community on Discord https://discord.gg/3xZJ65GAhd
EFNet for life!
I ended up going for Crossover and mIRC
PS: This assumes that you haven't done so. But even if you did, please leave it as a request to everyone else.
I bookmarked this so hopefully once that effort gets further along I can give it a try!
I figured I'd leave this comment so that some folks can see that there are real people even on HN who require these features and that accessibility work is always appreciated. We definitely exist :)