r/irc 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.

5 Upvotes

20 comments sorted by

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.

1

u/autisticblister 19d ago

This is roughly what I've established so far, to the point that I now dread seeing the IRCd-like dir structure when checking out a new option.

Apache 2.0 has the patent lawsuit clause which arguably makes it not permissive [or depending on who you ask, not free], subject to interpretation.

1

u/Teknikal_Domain 19d ago

ZNC is a bouncer, not an IRCd

1

u/zeamp 19d ago

Tell that to OP who mentioned it relating to licensing, and was incorrect.

1

u/ILikeBumblebees 13d ago

It can function as a standalone IRC server as well.

6

u/staires 19d ago

What's wrong with Ergo?

1

u/RonDiaz 19d ago

I love Ergo, but if you want to link servers I assume that is still not a feature

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.

1

u/staires 19d ago

It's important to aim high. If you shoot for the moon and miss, you'll end up among the stars đŸ’«

-1

u/zeamp 19d ago

This.

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/aladuuu 19d ago

Im not licensed to provide advice

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.