Comparison of Internet Relay Chat daemons
The following tables compare general and technical data. This article does not have current or all the data available.
Servers
IRC daemon | URL | Creator/network | Basis | Programming language | First public release | Latest stable version (numeric 351) | Software license |
---|---|---|---|---|---|---|---|
Bahamut | [1] | DALnet | DreamForge, IRCD-Hybrid | C | 1999 | bahamut-1.8(04) | GPL |
bIRCd | [2] | DAMnet Archived 2008-12-27 at the Wayback Machine | DreamForge | C | 1999 | bIRCd-2.1.0rc4 | GPL |
Charybdis | [3] Archived 2009-01-18 at the Wayback Machine | nenolod, jilles, dwr, gxti | ircd-ratbox, IRCD-Hybrid, ircu, ShadowIRCd | C | 2005 | charybdis-3.0.3 | GPL/BSD |
ConferenceRoom | [4] | WebMaster Incorporated | (from scratch) | C++ | 1996 | ConferenceRoom/3.5 | Proprietary |
csircd | [5] | Comstud | (from scratch) | C | 1998 | csircd-1.14 | GPL |
InspIRCd | [6] | InspIRCd Development Team Archived 2008-10-17 at the Wayback Machine | (from scratch) | C++ | 2002 | 1.1.22 | GPL |
IRCd | [7][dead link] | Jarkko Oikarinen, IRCnet | (from scratch) | C | 1988 | 2.11.2p1 | GPL |
ircd-hybrid | [8] | Hybrid Development Team, EFnet | irc2.8 | C | 1997 | 8.2.35 | GPL |
ircd-ratbox | [9] Archived 2020-12-01 at the Wayback Machine | Aaron Sethman, Lee Hardy, EFnet | Hybrid 7-rc1 | C | 2002 | ircd-ratbox-3.0.0 | GPL |
ircu | [10] | Undernet Coder Committee | irc2.7 | C | 1991 | u2.10.12.12 | GPL |
ithildin | [11] Archived 2007-03-14 at the Wayback Machine | Chip Norkus | (from scratch) | C | 2006 | 1.1.2 / 1.0r0 | BSD |
Nefarious IRCu | [12] Archived 2007-03-11 at the Wayback Machine | Evilnet Development, AfterNET | ircu2 | C | 2004 | u2.10.11.07+Nefarious(1.2.0)+[2212 2008-08-03] | GPL |
ngIRCd | [13] | Alex Barton | (from scratch) | C | 2001 | ngircd-0.12.1 | GPL |
OfficeIRC Server | [14] Archived 2008-12-19 at the Wayback Machine | Office IRC Inc, Paul Heinlein | (from scratch) | VB.net | 2006 | 2.1 | Proprietary |
PleXusIRCd | [15] | Rizon, thaprince, static | Hybrid 7.2.3 | C | 2005 | hybrid-7.2.3+plexus-3.0.1(20081028_0-520) | GPL |
pureIRCd | [16] | Dennis Fisch aka Diligent | (from scratch) | C | 2002 | ? | GPL |
ShadowIRCd | [17] Archived 2008-12-12 at the Wayback Machine | dwr, Eko, jdhore, jilles, nenolod | Charybdis | C | 2008 | shadowircd-6.0.0pre4 | GPL |
solid-ircd | [18] Archived 2008-07-09 at the Wayback Machine | Gabriel Baez | Bahamut | C | ? | solid-ircd 3.4.8 | GPL |
Synchronet IRCd | [19] | Randy E. Sommerfeld | (from scratch) | JavaScript | 2003 | SynchronetIRCd-1.3a(1.151) | GPL |
UnrealIRCd | [20] | EliteIRCd (potvin) | DreamForge | C | 1999 | Unreal6.1.4 | GPL |
WeIRCd | [21] Archived 2009-01-06 at the Wayback Machine | Eloxoph IRC Network | (from scratch) | C | 2007 | WeIRCd 0.4.5a | GPL |
Obsolete Servers
The following servers are no longer maintained, but basic details are maintained for posterity. They will not be listed in feature comparison tables.
IRC daemon | URL | Creator/network | Basis | Programming language | First public release | Outcome | Software license |
---|---|---|---|---|---|---|---|
PTlink IRC Server | [22] | PTlink IRC Software | Hybrid 6 | C | 2001 (v.6) | (now unmaintained) | GPL |
Asuka | [23] Archived 2006-04-10 at the Wayback Machine | QuakeNet Dev Team | ircu | C | ? | (replaced by snircd) | GPL |
Austhex | [24] | AustNet Development | ircu2.9 | C, Scheme | ? | (replaced by inspircd) | GPL |
dancer-ircd | none | freenode | Hybrid 6 | C | 1999 | (replaced by hyperion) | GPL |
DreamForge | [25] Archived 2008-12-01 at the Wayback Machine | DALnet | irc2.8.mu3 | C | 1994 (dal), 1997? (df) | (replaced by bahamut) | GPL |
hyperion | [26] Archived 2006-05-27 at the Wayback Machine | freenode | dancer-ircd 1.0.35+pre2 | C | 2005 | (to be replaced by ircd-seven) | GPL |
IRCXpro Server | [27] | IRCXpro, Paul Heinlein | IRCPlus | Visual Basic | ? | (replaced by OfficeIRC) | Proprietary |
pircd | [28] | Jay F Kominek | (from scratch) | Perl | 1999 | (now unmaintained) | Open Source (custom) |
QuakeIRCd | [29] | QuakeIRCd Team, Tiburon | UnrealIRCd | C | 2003 (v1.1) | (now unmaintained) | GPL |
SorIrcd | [30] | SorceryNet | dal4.4.10 and irc2.8.mu3 | C | 1996 | (replaced by Charybdis) | GPL |
UltimateIRCd | [31] Archived 2008-10-17 at the Wayback Machine | ShadowRealm Creations | DreamForge 2.8 | C | 2001 | (now unmaintained) | GPL |
Viagra IRCd | [32] | Chris Schiffner | Titan | C | 2003 | (now unmaintained) | GPL |
Operating system support
The operating systems that the daemon is compatible with.
IRC daemon | Windows | Mac OS X | Linux | BSD | Solaris | HP-UX | AIX | select() | poll() | epoll[1] | kqueue[2] | RT signals[3] | /dev/poll Archived 2007-02-02 at the Wayback Machine | Windows IOCP | Solaris IOCP |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bahamut | No | Yes | Yes | Yes | Yes | ? | ? | Yes | Yes | Yes | Yes | No | Yes | No | No |
bIRCd | Yes | ? | Yes | Yes | Yes | Yes | ? | Yes | Yes | No | No | No | No | No | No |
Charybdis | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes |
ConferenceRoom | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No |
InspIRCd | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes |
IRCD | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No |
ircd-ratbox | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
ircu | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No |
ithildin | No | No | Yes | Yes | ? | ? | ? | Yes | Yes | No | Yes | No | No | No | No |
Nefarious IRCu | Yes | Yes | Yes | Yes | Yes | Yes | ? | Yes | Yes | Yes | Yes | No | Yes | No | No |
ngIRCd | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | No |
OfficeIRC Server | Yes | No | Emulated | No | No | No | No | ? | ? | No | No | No | No | Yes | No |
PleXusIRCd | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
pureIRCd | Yes | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No |
ShadowIRCd | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
solid-ircd | No | Yes | Yes | Yes | Yes | ? | ? | Yes | Yes | Yes | Yes | No | Yes | No | No |
Synchronet IRCd | Yes | Yes | Yes | Yes | Yes | ? | ? | Yes | Yes | Yes | Yes | No | Yes | No | No |
UnrealIRCd | Yes | Yes | Yes | Yes | Yes | ? | ? | Yes | Planned[4] | No | No | No | No | No | No |
WeIRCd | Planned | Yes | Yes | Yes | ? | ? | ? | Planned | No | No | No | No | No | No | No |
Technology
Various networking and IRC technology used to date.
IRC daemon | Modularity | Remote Includes | IPv6 | Client SSL | SSL Linking | Zip Linking | Hostmasking / Cloaking | Services Integration (built-in services) | LDAP Authentication | IRCX Support | SASL Support | WebSockets Support | Server Protocol |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bahamut | No | No | No | No | No | Yes | No | No | No | No | No | No | TS5 with extensions |
bIRCd | No | No | Yes | Yes | Yes | No | No | No | No | No | No | No | RFC 1459 and TSpre8 |
Charybdis | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | TS6 with extensions |
ConferenceRoom | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | ? | Proprietary, binary |
InspIRCd | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes (1.2) | Yes | TS6 based Spanning Tree Archived 2008-08-21 at the Wayback Machine |
IRCD | No | No | Yes | No | No | Yes | No | No | No | No | No | ? | RFC 1459 and RFC 2813 with SID/UID |
ircd-ratbox | Yes | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | TS6 |
ircu | No | No | Yes | No | No | No | Yes | No | No | No | No | No | P10 |
ithildin | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | ? | Module-dependent |
Nefarious IRCu | No | No | No | Yes | No | No | Yes | No | No | No | No | No | P10 with extensions |
ngIRCd | No | No | Yes | No | No | Yes | No | No | No | No | No | No | RFC 1459 and RFC 2813 |
OfficeIRC Server | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | DreamForge/UnrealIRCd compatible |
PleXusIRCd | Yes | No | Yes | Yes | Yes | Yes | Yes | No | ? | No | No | No | TS5/TS6 |
pureIRCd | No | No | No | No | No | No | No | No | No | No | No | No | No |
ShadowIRCd | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | No | TS6 with extensions |
solid-ircd | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | No | TS5 with extensions |
Synchronet IRCd | No | No | No | No | No | No | No | No | No | No | No | ? | TS5 with extensions |
UnrealIRCd | Partial | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | DreamForge/TS5 with extensions |
WeIRCd | No | No | No | No | No | No | Yes | Yes | No | No | No | ? | No |
Features
IRC server features, mostly extensions to RFC 1459. Probably also implementations of RFC 2810, RFC 2811, RFC 2812, RFC 2813, and possibly IRCX.
- +channels (In early IRCds, these were simply named channels. At least one modern IRCd (IRCD) uses the + prefix for modeless channels, i.e. no chanops and channel mode forced to +nt. This is described in RFC 2811.)
- #channels ("+channels" were later replaced with "#channels" in version 2.7, numeric channels were removed entirely and channel bans (mode +b) were implemented.)
- &channels (irc2.8, those that exist only on the current server, rather than the entire network)
- !channels (irc2.10, those that are theoretically safe from suffering from the many ways that a user could exploit a channel by "riding a netsplit"; IRCds using timestamping provide (most of) this functionality on #channels)
- %#channels (#channels whose name are in UTF-8 for IRCX)
- %&channels (&channels whose name are in UTF-8 for IRCX)
- %!channels (!channels whose name are in UTF-8 for IRCX)
IRC daemon | Channel Types | Halfop Support
(+h %) |
Admin/Protect Support
(+a/+u &/!/*) |
Founder/Owner Support
(+q ~/.) |
Operator Prefixing[5] | Advanced Operator ACL | Operator "Levels"[6] | vHost via i:line (or equivalent) | i18n Nicknames Archived 2008-12-25 at the Wayback Machine | RDBMS Integration (SQL) |
---|---|---|---|---|---|---|---|---|---|---|
Bahamut | # | No | No | No | No | No | No | Partial | No | No |
bIRCd | # & | No | No | No | No | No | No | Partial | No | No |
Charybdis | # & | No | No | No | No | Yes | No | Yes | No | No |
ConferenceRoom | # & | No | No | Yes | No | Yes | Yes | Yes | Partial | Partial |
InspIRCd | # | Yes | Yes | Yes | Module | Yes | Module | Yes | Module (1.2) | MySQL, SQLite & PostgreSQL: Authorization, Services Integration, Logging, Operaccess |
IRCD | # & ! + | No | No | No | No | ? | No | No | No | No |
ircd-ratbox | # & | No | No | No | No | No | No | Yes | No | No |
ircu | # & | No | ? | ? | ? | Yes | ? | Yes | ? | ? |
ithildin | # | No | No | No | Yes | Yes | via privilege system | Yes | No | No |
Nefarious IRCu | # & | Yes | No | No | No | No | No | Yes | No | No |
ngIRCd | # | No | No | No | No | No | No | No | No | No |
OfficeIRC Server | # %# & %& | No | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Partial |
PleXusIRCd | # & | Yes | Yes | Yes | No | No | ? | Yes | ? | No |
pureIRCd | # | No | No | ? | ? | ? | ? | ? | ? | ? |
ShadowIRCd | # & | Yes | Yes | No | No | Yes | No | Yes | No | No |
solid-ircd | # | Yes | No | No | No | No | No | Partial | No | No |
Synchronet IRCd | # & | No | No | No | No | No | No | No | No | No |
UnrealIRCd | # | Yes | Yes | Yes | No | No | No | No | iso8859-1/2/7/8-I/9/16, windows-1250/1251, Multibyte | No |
WeIRCd | # | Yes | No | No | No | No | No | No | No | No |
IRC daemon | Connect-flood detection | Channel flood controls Basic / Advanced |
Join throttling | Spamfilter Regexp / Glob |
Channel Censor IRCd Config / Chanop-Controlled |
Variable per-channel banlist size | Timed bans | DNSBL |
---|---|---|---|---|---|---|---|---|
Bahamut | Yes | Yes / No | Yes | No / No | No / No | No | No | No |
bIRCd | No | No / No | No | No / No | No / No | No | No | No |
Charybdis | Yes | No / No | Yes | No / No | No / No | Yes | Yes | Yes |
ConferenceRoom | Yes | Yes / Yes | Yes | No / Yes | Partial / No | No | Partial | Yes |
InspIRCd | Yes | Yes / Yes | Yes | Yes / Yes | Yes / Yes | Yes | Yes | Yes |
IRCD | ? | ? / ? | ? | ? / ? | ? / ? | ? | ? | ? |
ircd-ratbox | Yes | No / No | No | No / No | No / No | No | No | No |
ircu | ? | ? / ? | ? | ? / ? | ? / ? | ? | ? | No |
ithildin | Module | No / No | No | No / No | No / No | No | No | ? |
Nefarious IRCu | No | No / No | No | No / No | No / No | No | No | Yes |
ngIRCd | No | No / No | No | No / No | No / No | No | No | No |
OfficeIRC Server | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
PleXusIRCd | Yes | No / No | No | No / No | No / No | No | No | ? |
pureIRCd | ? | ? / ? | ? | ? / ? | ? / ? | ? | ? | ? |
ShadowIRCd | Yes | No / No | Yes | No / No | No / No | Yes | Yes | Yes |
solid-ircd | Yes | Yes / No | Yes | No / No | No / No | No | No | No |
Synchronet IRCd | Yes | Yes / No | Yes | No / No | No / No | No / No | No | No |
UnrealIRCd | No | Yes | Yes | Yes / No | Yes / No | No | No | Third party module |
WeIRCd | Partial | No / No | No | No / No | No / No | No | No | No |
Related pages
Notes
- ↑ epoll (Linux since 2.6) - I/O event notification facility. Has a much better performance than select() and poll() system calls.
- ↑ kqueue (FreeBSD since 4.1) - asynchronous event dispatch mechanism.
- ↑ "POSIX.4 Real Time Signals" (Linux since 2.4) - special class of Linux system signals used for notification of events on file descriptors. Deprecated in favour of epoll.
- ↑ UnrealIRCd bugtracker entry for poll() - Next release (3.2.10) should have poll() implemented.
- ↑ The ability for network staff (not channel ops, but ircd opers) to be denoted in a channel with a special prefix
- ↑ Protect "higher" opers from being killed and/or z, k, or g-lined by "lower" opers
Other websites
- IRCd features compared to InspIRCd Archived 2008-10-17 at the Wayback Machine
- History of IRC Archived 2020-11-12 at the Wayback Machine
- IRCD distribution
- IRC numerics and modes from major IRCds