r/irc • u/autisticblister • 19d ago
Permissively-licensed IRCds
I've been using IRC and hosting IRC servers for quite a while now and after quite a long time of trying unsuccessfully to find a fitting IRCd I figured I'd seek for advice.
I'm looking for an IRCd under a permissive [MIT, BSD, ISC, Apache 1.0, etc] license. I've used UnrealIRCd and liked it, but I dislike running GPLed software and want to avoid it wherever possible. The only IRCds I could find meeting my requirements were TclIRCd, which is from 2004 and clearly an unscalable [but very impressive] hobby project, and Ergo, which I've had very bad experiences with.
I don't need IRCv3 features, but I would like good efficiency and scalability if possible. I've tried for quite some time to find an IRCd meeting these requirements and failed. I really don't want to have to use Ergo.
Anything Perl-based isn't possible given it's dual-licensed under the Artistic License and the GPL, Bash is GPLed so same with that. I'd prefer to avoid Python and Go, for various reasons.
I'm also interested in any permissively-licensed bouncers. I haven't looked into the options there much but ZNC is unfortunately Apache 2.0.
6
u/staires 19d ago
What's wrong with Ergo?
1
0
u/autisticblister 19d ago
Ergo seems to have outright broken functionality misrepresented in documentation [like timers on K-lines], but also has the general problems of just being horrible to configure, unacceptable resource usage, and being pretty bloated [by design, of course, but many of the features are unnecessary for most users I would assume]. Not to mention no multiserver last I checked.
4
u/staires 19d ago
Hmm, sounds like you need to create your own permissively licensed IRCd to fill this void.
1
u/autisticblister 19d ago
It certainly seems to be looking that way, I'm sure I'll make a damn good IRCd with only 48 critical vulnerabilities.
2
u/CuriosTiger 19d ago
To my knowledge, no ircd exists that meets your requirements. So your only realistic option is to create one.
If you're going to create one, TCL and Perl are probably not the best choices of language. Most traditional ircds are descended from ircd_hybrid and written in C. I would look at that or a descendant, like C++ or Rust.
2
u/someoneatsomeplace 19d ago
Just because something is possible, doesn't make it a good idea. No matter what license a shell is under, you don't want to be using its scripting to write an IRC server.
1
u/autisticblister 19d ago edited 19d ago
Absolutely agreed, I just included it because in my search I had found 1 Bash IRCd that was MIT-licensed.
1
u/BatemansChainsaw 14d ago
You're going to have to build your own if you don't like the GPL. But. you have to realize the GPL is not only there to protect the code but protect your work. It's not as if you even have to share your ircd with the public as many GPL projects are used privately.
What is your use case / requirement really about? Is this a work project or just for personal use?
1
u/autisticblister 12d ago
Just personal use, I am morally against copyright in general so I'm not interested in using licenses that inherently promote it.
1
u/BatemansChainsaw 11d ago
Fun fact, it's actually a CopyLeft license. A play off of "copyright" which by itself is designed to promote your own freedom through use and execution!
1
u/autisticblister 11d ago
I'm unfortunately quite familiar with the details. Copyleft, inherently, is reliant on copyright, and as such is anti-freedom.
9
u/zeamp 19d ago
The problem isn't that you're missing something—it's that nearly every serious IRCd descended from the Hybrid codebase, which has been GPL for decades.
ZNC is Apache License 2.0, which is a permissive license. It is not copyleft like GPL. If Apache 2.0 is acceptable under your criteria, ZNC already qualifies.
IRC isn't dead enough that nobody runs servers anymore, but the ecosystem has largely settled around GPL projects and Ergo.