Comparison of Internet Relay Chat daemons
From Wikipedia, the free encyclopedia
The following tables compare general and technical information including the differences in feature sets between popular IRC daemons. Please see the individual products' articles or websites for further information. This article is neither all-inclusive nor necessarily up-to-date.
Contents |
[edit] Servers
IRC daemon | URL | Creator/network | Basis | Programming language | First public release | Latest stable version (numeric 351) | Software license |
---|---|---|---|---|---|---|---|
Bahamut | [1] | DALnet | DreamForge and IRCD-Hybrid | C | 2002 | bahamut-1.8(04) | GPL |
Charybdis | [2] | nenolod, jilles, dwr, gxti | ircd-ratbox, IRCD-Hybrid, ircu, ShadowIRCd | C | 2005 | charybdis-3.0.1 | GPL/BSD |
ConferenceRoom | [3] | WebMaster Incorporated | (from scratch) | C++ | 1996 | ConferenceRoom/3.5 | Proprietary |
csircd | [4] | Comstud | (from scratch) | C | 1998 | csircd-1.14 | GPL |
InspIRCd | [5] | InspIRCd Development Team | (from scratch) | C++ | 2002 | 1.1.19+Cheshire | GPL |
IRCD | [6] | Jarkko Oikarinen, IRCNet | (from scratch) | C | 1988 | 2.11.1p1 | GPL |
ircd-ratbox | [7] | Aaron Sethman, Lee Hardy, EFnet | Hybrid 7-rc1 | C | 2002 | ircd-ratbox-2.2.8 | GPL |
ircu | [8] | Undernet Coder Committee | ircd2.8.10 | C | 1991 | ircu2.10.12.10 | GPL |
ithildin | [9] | Chip Norkus | (from scratch) | C | 2006 | 1.1.2 / 1.0r0 | BSD |
Nefarious IRCu | [10] | Evilnet Development, AfterNET | ircu2 | C | 2004 | u2.10.11.07+Nefarious(1.0.1)+[1755 2006-08-26] | GPL |
ngIRCd | [11] | Alex Barton | (from scratch) | C | 2001 | ngircd-0.11.1 | GPL |
OfficeIRC Server | [12] | Office IRC Inc, Paul Heinlein | (from scratch) | VB.net | 2006 | 2.0 | Proprietary |
PleXusIRCd | [13] | Rizon, thaprince, static | Hybrid 7.2.3 | C | 2005 | ircd-plexus-3.0.0-20070708_0-495 | GPL |
PTlink IRC Server | [14] | PTlink IRC Software | Hybrid 6 | C | 2001 (v.6) | Hybrid6/PTlink6.19.6 | GPL |
pureIRCd | [15] | Dennis Fisch aka Diligent | (from scratch) | C | 2002 | ? | GPL |
solid-ircd | [16] | Gabriel Baez | Bahamut | C | ? | solid-ircd 3.4.8 | GPL |
UnrealIRCd | [17] | UnrealIRCd Team | EliteIRCd (potvin) | C | 1999 | Unreal3.2.7 | GPL |
WeIRCd | [18] | Eloxoph IRC Network | (from scratch) | C | 2007 | WeIRCd 0.3.6 | Freeware (custom) |
[edit] 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 |
---|---|---|---|---|---|---|---|
Asuka | [19] | QuakeNet Dev Team | ircu | C | ? | (replaced by snircd) | GPL |
Austhex | [20] | AustNet Development | ircu2.9 | C, Scheme | ? | (replaced by inspircd) | GPL |
bircd | [21] | beware | (from scratch) | Delphi | 2002? | (now unmaintained) | GPL |
dancer-ircd | none | freenode | Hybrid 6 | C | 1999 | (replaced by hyperion) | GPL |
DreamForge | [22] | DALnet | irc2.8.mu3 | C | 1994 (dal), 1997? (df) | (replaced by bahamut) | GPL |
hyperion | [23] | freenode | dancer-ircd 1.0.35+pre2 | C | 2005 | (to be replaced by ircd-seven) | GPL |
IRCD-Hybrid | [24] | Hybrid Development Team | irc2.8 (IRCD) | C | 1997 | (largely replaced by ircd-ratbox) | GPL |
IRCXpro Server | [25] | IRCXpro, Paul Heinlein | IRCPlus | Visual Basic | ? | (replaced by OfficeIRC) | Proprietary |
pircd | [26] | Jay F Kominek | (from scratch) | Perl | 1999 | (now unmaintained) | Open-source (custom) |
QuakeIRCd | [27] | QuakeIRCd Team, Tiburon | UnrealIRCd | C | 2003 (v1.1) | (now unmaintained) | GPL |
SorIrcd | [28] | SorceryNet | dal4.4.10 and irc2.8.mu3 | C | 1996 | (replaced by Charybdis) | GPL |
UltimateIRCd | [29] | ShadowRealm Creations | DreamForge 2.8 | C | 2001 | (now unmaintained) | GPL |
Viagra IRCd | [30] | Chris Schiffner | Titan | C | 2003 | (now unmaintained) | GPL |
[edit] Operating system support
The operating systems the daemons can run on without emulation; also supported event dispatch facilities for network sockets (see IRCd for further information).
IRC daemon | Windows | Mac OS X | Linux | BSD | Solaris | HP-UX | AIX | select() | poll() | epoll[1] | kqueue[2] | RT signals[3] | /dev/poll | Windows IOCP | Solaris IOCP |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bahamut | No | Yes | Yes | Yes | Yes | ? | ? | Yes | Yes | Yes | Yes | No | Yes | 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 | No | ? | 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 | No | No | No | No | No | ? | ? | No | No | No | No | No | No |
PleXusIRCd | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
PTlink IRC Server | 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 |
solid-ircd | No | Yes | Yes | Yes | Yes | ? | ? | Yes | Yes | Yes | Yes | No | Yes | No | No |
UnrealIRCd | Yes | No | Yes | Yes | Yes | ? | ? | Yes | No | No | No | No | No | No | No |
WeIRCd | No | No | Yes | Yes | No | No | No | Yes | No | No | No | No | No | No | No |
[edit] Technology
Various networking and IRC technology implemented 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 | Server Protocol |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Bahamut | Partial | No | No | No | Partial | Yes | No | No | No | No | No | TS5 with extensions |
Charybdis | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | TS6 with extensions |
ConferenceRoom | Partial | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Partial | Partial | Proprietary, binary |
InspIRCd | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes (1.2) | TS6 based Spanning Tree |
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 | TS5/TS6 |
ircu | No | No | Yes | No | No | No | Yes | 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 | No | No | No | No | No | P10 with extensions |
ngIRCd | No | No | Yes | No | No | Yes | No | No | No | No | No | RFC 1459 and RFC 2813 |
OfficeIRC Server | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | DreamForge/UnrealIRCd compatible |
PleXusIRCd | Yes | No | Yes | Yes | Yes | Yes | Yes | No | ? | No | No | TS5/TS6 |
PTlink IRC Server | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No | No | No | TS5 with extensions |
pureIRCd | No | No | No | No | No | No | No | No | No | No | No | No |
solid-ircd | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No | TS5 with extensions |
UnrealIRCd | Partial | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | DreamForge/TS5 with extensions |
WeIRCd | No | No | No | No | No | No | No | No | No | No | No | No |
[edit] 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, ie 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[4] | Advanced Operator ACL | Operator "Levels"[5] | vHost via i:line (or equivalent) | i18n Nicknames | RDBMS Integration (SQL) |
---|---|---|---|---|---|---|---|---|---|---|
Bahamut | # | 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 | No | MySQL, SQLite & PostgreSQL: Authorization, Services Integration, Logging, Operaccess |
IRCD | # & ! + | No | No | No | No | ? | No | No | No | No |
ircd-ratbox | # & | 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 |
PTlink IRC Server | # & | Yes | Yes | Yes | Yes | No | No | Yes | No | No |
pureIRCd | # | No | No | ? | ? | ? | ? | ? | ? | ? |
solid-ircd | # | Yes | No | No | No | No | No | Partial | No | No |
UnrealIRCd | # | Yes | Yes | Yes | No | Yes | Commercial Module | Yes | iso8859-1/2/7/8-I/9/16, windows-1250/1251, Multibyte | Commercial Modules for MySQL: Authorization, Services Integration, Logging |
WeIRCd | # | Yes | Yes | 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 |
Charybdis | Yes | No / No | Yes | No / No | No / No | Yes | No | 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 | ? | ? / ? | ? | No / No | ? / ? | No | No | No |
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 | No |
PleXusIRCd | Yes | No / No | No | No / No | No / No | No | No | No |
PTlink IRC Server | Yes | Yes / No | Yes | Yes / No | Yes / Yes | Yes | No | No |
pureIRCd | ? | ? / ? | ? | ? / ? | ? / ? | ? | ? | ? |
solid-ircd | Yes | Yes / No | Yes | No / No | No / No | No | No | No |
UnrealIRCd | Partial | Yes / Yes | Yes | Yes / No | Yes / Free Module | No | Commercial Module | No |
WeIRCd | No | No / No | No | No / No | No / No | No | No | No |
[edit] Notes
- ^ epoll (Linux since 2.6) - I/O event notification facility. Has a much better performance than
select()
andpoll()
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.
- ^ 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
[edit] See also
- IRCd
- IRC services
- Internet Relay Chat
- IRCX
- Comparison of IRC clients
- Comparison of IRC services
- Comparison of instant messaging clients
- Comparison of instant messaging protocols