Live data from Hacker News

Ergo Chat – A modern IRC server written in Go

github.com

121–130 of 163 posts

Re: Ergo Chat – A modern IRC server written in Go

#121
post #120

Earlier quoted context omitted.

However on IRC this is not for technical reasons, but limited interest. Pre-LLM-GenAI gathering information from huge chat logs was quite limited. But different extraction mechanisms always existed. Some people kept logs, some servers/channels had web-archives. Discord tries to keep it exclusive to them. (Focussing on technical side here, whether it's socially wanted is a different big question, which ends with a "it…

grep/recoll. Fast even on ancient machines.

That's nice for finding Keywords, but dismantling a chat discussion, which probably consists of many parallel threads in a channel, isn't easy.

Re: Ergo Chat – A modern IRC server written in Go

#122

Earlier quoted context omitted.

I guess I did not make the scope of the project clear. Both Matrix and XMPP specs add up to 100s of pages, 500 or so give or take. IRCv3 seems to be over 100 pages too. In comparison, Gemini is about 10 pages long or so. A bunch of people here talk about setting up a small server for family and friends, so I think a smaller protocol, akin to Gemini in size, could be a lot of fun to work with for small scale deploymen…

The protocol isn't really an issue for the use-case you talk about. I founded the Snikket project, which aims squarely at the family-and-friends use case you mention (after all, it was made to scratch my own itch - my family's excessive use of WhatsApp for communicating with each other). I can tell you that my family don't care a bit whether Snikket uses IRC, XMPP or Matrix or some real-time Gemini equivalent. There…

Hey, your project looks interesting, thanks for building and sharing it.

One question: are you aware of Jami[1], f.k.a. Ring? If so, how does it compare to Snikket?

I see that Snikket requires a server, whereas Jami is P2P. The benefit of a server is probably that messages can be stored centrally and not on each device. But I can see pros and cons of either approach.

[1]: https://jami.net/

Re: Ergo Chat – A modern IRC server written in Go

#123
post #77
post #52

Earlier quoted context omitted.

Matrix was invented because XMPP was getting too complex. Are we once again at a point where it's time to start over? A federated asynchronous group chat protocol with modern e2e encryption for desktop and mobile use (thus, not always online) is impossible to build without a faire share of complicated corner cases.

To me, it's slowly become obvious that Matrix was invented because certain people wanted to ride the trendy wave of VC money propping up Slack and friends back in those days. Matrix has been all about superlative marketing and over-promises with little substance and theoretical underpinnings to back it up. The fact that they were spreading FUD and disinformation against XMPP and the alternatives in their early days s…

I’ll take the superlative marketing :D

If folks are interested seeing the companies currently sinking $ into Matrix by routing $ to the Matrix Foundation, you can see them at https://matrix.org/support. Thankfully it’s not just Element these days, but companies like Thales and Huawei too. That said, there’s still a $ gap in funding.

Meanwhile Matrix 2.0 is a genuine pleasure to use, imo. You can see the substance and explore the theoretical underpinnings at https://matrix.org/blog/2023/09/matrix-2-0/ and https://element.io/blog/experimenting-with-matrix-2-0-using-...

I do regret saying that XMPP had fallen behind, 10 years ago, when we launched Matrix, though - not least because 10 years later folks are still bringing it up ;)

Re: Ergo Chat – A modern IRC server written in Go

#124

Earlier quoted context omitted.

This is not a feature, this is a limitation. It would've been a feature if Signal offered you a choice of whether the history should be synced up or not (perhaps with a default of "no" for existing users, to maintain the established expectation). As it is, this is a limitation.

In order for Signal to provide this history, said history would have to be stored on their servers, massively nerfing one of their core competitive advantages. This “limitation” is the ultimate advantage from the perspective of Signal’s core competency.

When you switch to a new phone, Signal can sync the history just fine.

When you add a new computer, Signal refuses to sync the history.

Re: Ergo Chat – A modern IRC server written in Go

#125

IRC is often romanticized, but after working with its protocol spec, I found it rather unsavory. Its unstructured message format looks like this: :User1 PRIVMSG User2 :Hello, are you receiving this message? While this might look fine at first glance, the lack of more regular structure caused issues. Some messages are easier to parse than others. Each implementation introduced quirks and variations, creating countless…

Nobody in the 80s wanted to pay the overhead of s-exprs when a couple of colons did the job. Bandwidth and memory were limited.

Re: Ergo Chat – A modern IRC server written in Go

#126
post #96
post #30

Earlier quoted context omitted.

Ive been running matrix for small company/group for almost 10years. No need to use Synapse as there are many other solid servers (and have been for years). Matrix (the company) software like Synapse and Denderite (their “performant” server in go) are aimed at mega servers that federate and the features revolve around that. If you want to selfhost just make it easy and get Conduit. Its single binary and uses embedded…

What clients do you use to connect to it? I just setup a Conduit server and can connect from my Mac via https://app.element.io as well as the official MacOS app, but the iPhone apps cannot find it somehow. Does that work for you too?

Nevermind. I think I got it. My server name was set incorrectly so that

curl example.com/.well-known/matrix/client

responded with an incorrect base_url.

Re: Ergo Chat – A modern IRC server written in Go

#127
post #2

I've been running Ergo for the past year for my friends/family chat. I went this route because of the ease of hosting, very low resource requirements and a protocol and codebase that I feel I can understand and debug if needed. The v3 chathistory support and the always-on[1] multi-client[2] features paired with modern clients (like Goguma) go a long way at providing a modern chat environment. Most others on the serve…

As heavy Discord user, it's nice to see that IRC is still kicking and might be available if/when Discord ZIRP gas runs out.

And if it's not, or you need something more secure, there's always Matrix.

https://matrix.org

Re: Ergo Chat – A modern IRC server written in Go

#128
post #21

let's hope this replaced slack and all the gimmickware.

What’s wrong with Slack?

IMHO it's expensive and not at all better than IRC, plus it helps kill IRC which was a core part of the public internet, open source culture, etc.

I also find it annoying that the creators of slack pretend they invented something original.

Re: Ergo Chat – A modern IRC server written in Go

#130
post #52

Earlier quoted context omitted.

Matrix was invented because XMPP was getting too complex. Are we once again at a point where it's time to start over? A federated asynchronous group chat protocol with modern e2e encryption for desktop and mobile use (thus, not always online) is impossible to build without a faire share of complicated corner cases.

I guess I did not make the scope of the project clear. Both Matrix and XMPP specs add up to 100s of pages, 500 or so give or take. IRCv3 seems to be over 100 pages too. In comparison, Gemini is about 10 pages long or so. A bunch of people here talk about setting up a small server for family and friends, so I think a smaller protocol, akin to Gemini in size, could be a lot of fun to work with for small scale deploymen…

Well, all the XEPs add up to 100s of pages, but the minimal requirements for basic chat are pretty small. It gets more complex as you add more features, but importantly the complexity is managed well. You don't have to do the crazy fragile hacks that IRC needs, because XMPP was designed expressly as an extensible protocol.
Post reply on HN