Comparison of Internet Relay Chat daemons

Wikimedia list article

The following tables compare general and technical data. This article does not have current or all the data available.

Servers change

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][permanent 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 change

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 change

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[source?] 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 change

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 change

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 change

Notes change

  1. epoll (Linux since 2.6) - I/O event notification facility. Has a much better performance than select() and poll() system calls.
  2. kqueue (FreeBSD since 4.1) - asynchronous event dispatch mechanism.
  3. "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.
  4. UnrealIRCd bugtracker entry for poll() - Next release (3.2.10) should have poll() implemented.
  5. The ability for network staff (not channel ops, but ircd opers) to be denoted in a channel with a special prefix
  6. Protect "higher" opers from being killed and/or z, k, or g-lined by "lower" opers

Other websites change