Comparison of Internet Relay Chat daemons

From Wikipedia, the free encyclopedia

  (Redirected from Comparison of IRCds)
Jump to: navigation, search

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 or the cited references for further information. This article is neither all-inclusive nor necessarily up-to-date.

Contents

[edit] Servers

IRC daemon Creator/network Basis Programming language First public release Latest version (numeric 351) Software license
Bahamut DALnet DreamForge, IRCD-Hybrid C 1999 bahamut-1.8.6 GPL
bIRCd DAMnet DreamForge C 1999 bIRCd-2.1.0rc4 GPL
Charybdis nenolod, jilles, dwr, gxti ircd-ratbox, IRCD-Hybrid, ircu, ShadowIRCd C 2005 charybdis-3.1.0 GPL/BSD
ConferenceRoom WebMaster Incorporated (from scratch) C++ 1996 ConferenceRoom/3.5 Proprietary
csircd Comstud (from scratch) C 1998 csircd-1.14 GPL
InspIRCd [1] InspIRCd Development Team (from scratch) C++ 2002 1.1.22[2] GPL
IRCd[3] Jarkko Oikarinen, IRCnet[4] (from scratch) C[5] 1988 2.95 GPL
IRCD-Hybrid Hybrid Development Team, EFnet irc2.8 C 1997 7.2.3 GPL
ircd-ratbox Aaron Sethman, Lee Hardy, EFnet Hybrid 7-rc1 C 2002 ircd-ratbox-3.0.0 GPL
ircu Undernet Coder Committee irc2.7 C 1991 u2.10.12.12 GPL
ithildin[6] Chip Norkus (from scratch) C 2006 1.1[7] BSD[8]
Nefarious IRCu Evilnet Development, AfterNET ircu2 C 2004 u2.10.11.07+Nefarious(1.2.0)+[2212 2008-08-03] GPL
ngIRCd[9] Alex Barton (from scratch) C 2001[citation needed] ngircd-14.1[10] GPL
OfficeIRC Server Office IRC Inc, Paul Heinlein (from scratch) VB.net 2006 2.2 Proprietary
PleXusIRCd Rizon, thaprince, static Hybrid 7.2.3 C 2005 hybrid-7.2.3+plexus-3.0.1(20081028_0-520) GPL
pureIRCd Dennis Fisch aka Diligent (from scratch) C 2002  ? GPL
ShadowIRCd dwr, Eko, jdhore, jilles, nenolod Charybdis C 2008 shadowircd-6.0.0pre4 GPL
solid-ircd Toshi Morita, Juan Baez Bahamut C 2004[11] solid-ircd 3.4.8 GPL
Synchronet IRCd[12] Randy E. Sommerfeld (from scratch) JavaScript 2003 SynchronetIRCd-1.3a(1.151) GPL
UnrealIRCd [13] UnrealIRCd Team EliteIRCd (potvin)[14] C 1999 Unreal3.2.8.1[15] GPL
WeIRCd[16] Eloxoph IRC Network (from scratch) C 2007[17] WeIRCd 0.6.0.2[18] GPL

[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 Creator/network Basis Programming language First public release Outcome Software license
PTlink IRC Server PTlink IRC Software Hybrid 6 C 2001 (v.6) (now unmaintained) GPL
Asuka QuakeNet Dev Team ircu C  ? (replaced by snircd) GPL
Austhex AustNet Development ircu2.9 C, Scheme  ? (replaced by inspircd) GPL
bircd beware (from scratch) Delphi 2002? (now unmaintained) GPL
dancer-ircd freenode Hybrid 6 C 1999 (replaced by hyperion) GPL
DreamForge DALnet irc2.8.mu3 C 1994 (dal), 1997? (df) (replaced by bahamut) GPL
hyperion freenode dancer-ircd 1.0.35+pre2 C 2005 (to be replaced by ircd-seven) GPL
IRCXpro Server IRCXpro, Paul Heinlein IRCPlus Visual Basic 2002 (replaced by OfficeIRC) Proprietary
pircd Jay F Kominek (from scratch) Perl 1999 (now unmaintained) Open Source (custom)
QuakeIRCd QuakeIRCd Team, Tiburon UnrealIRCd C 2003 (v1.1) (now unmaintained) GPL
SorIrcd SorceryNet dal4.4.10 and irc2.8.mu3 C 1996 (replaced by Charybdis) GPL
UltimateIRCd ShadowRealm Creations DreamForge 2.8 C 2001 (now unmaintained) GPL
Viagra IRCd 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[19] kqueue[20] RT signals[21] /dev/poll 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[22] Yes Yes Yes Yes Yes Yes Yes[citation needed] 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 Yes Yes Yes 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 No No No No No No No
WeIRCd Yes Yes Yes Yes ? ? ? 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 No No No No Yes Yes No No No No No TS5 with extensions
bIRCd No No Yes Yes Yes No No No No No No RFC 1459 and TSpre8
Charybdis Yes No Yes Yes Yes Yes Yes No No No Yes TS6 with extensions
ConferenceRoom No No No Yes Yes Yes Yes Yes Yes No No Proprietary, binary
InspIRCd Yes[23] Yes Yes Yes Yes Yes Yes No Yes No Yes (1.2) TS6 based Spanning Tree, proprietary
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 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 Yes 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 Yes Yes Yes Yes Yes Yes Yes Yes Yes DreamForge/UnrealIRCd compatible
PleXusIRCd Yes No Yes Yes Yes Yes Yes No  ? No No TS5/TS6
pureIRCd No No No No No No No No No No No No
ShadowIRCd Yes No Yes Yes Yes Yes Yes No No No Yes TS6 with extensions
solid-ircd No No No Yes Yes Yes Yes No No No No TS5 with extensions
Synchronet IRCd No No No No No No No No No No No TS5 with extensions
UnrealIRCd Yes Yes Yes Yes Yes Yes Yes No No No No DreamForge/TS5 with extensions
WeIRCd Partial[24] No Only on Unix systems No No No Yes Yes (optionally) No No No wlinksv1 protocol (only partly working)

[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[25] Advanced Operator ACL Operator "Levels"[26] vHost via i:line (or equivalent) i18n Nicknames 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 via 3.1 privilege system 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 No No Yes No No No No
ithildin # No No No Yes Yes 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 SQLite (when compiling with built-in services): Storing registered users and channels
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

[edit] Notes

  1. ^ Inspire IRCd - The Stable, High-Performance Modular IRCd
  2. ^ SourceForge.net: InspIRCd - The Modular C++ ircd: Files
  3. ^ IRCD - the server
  4. ^ IRC history
  5. ^ Source code
  6. ^ Ithildin
  7. ^ Downloads - Ithildhin
  8. ^ Ithildin license file (1.1 branch in repository)
  9. ^ ngIRCd: Next Generation IRC Daemon
  10. ^ ngIRCd download page
  11. ^ SolidIRCd SourceForge Project Page
  12. ^ ircd.js : The Synchronet IRCd Service
  13. ^ About UnrealIRCd
  14. ^ unrealircd.doc
  15. ^ Download Unreal
  16. ^ WeIRCd - the simple & easy IRCd (IRC Daemon)
  17. ^ http://eloxoph.com/weircd/changelog.txt
  18. ^ Index of /weircd/releases/
  19. ^ epoll (Linux since 2.6) - I/O event notification facility. Has a much better performance than select() and poll() system calls.
  20. ^ kqueue (FreeBSD since 4.1) - asynchronous event dispatch mechanism.
  21. ^ "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.
  22. ^ Supported Operating Systems - Inspire IRCd (InspIRCd)
  23. ^ Modules - Inspire IRCd (InspIRCd)
  24. ^ modulesmanager.c
  25. ^ The ability for network staff (not channel ops, but ircd opers) to be denoted in a channel with a special prefix
  26. ^ Protect "higher" opers from being killed and/or z, k, or g-lined by "lower" opers

[edit] See also

[edit] External links

Personal tools
Languages