Comparison of Internet Relay Chat daemons

From Wikipedia, the free encyclopedia
  (Redirected from Comparison of IRC daemons)
Jump to: navigation, search

The following tables compare general and technical information including the differences in feature sets between popular IRC daemons. Grey entries in the list represent supposedly unmaintained daemons.

This article is neither all-inclusive nor necessarily up-to-date.

Servers[edit]

IRC daemon Creator/network Basis Programming language First public release Latest version (numeric 351) Software license
Asuka[1] QuakeNet Dev Team ircu C Unknown 1.2.1 (now replaced by snircd) GPL
Bahamut[2] DALnet DreamForge, IRCD-Hybrid C 1999[3] bahamut-2.0.5 GPL
bIRCd[4] DAMnet DreamForge C 1999 bIRCd-2.1.0rc4 GPL
beware ircd[5] beware from scratch Delphi Unknown beware1.6 GPL
Charybdis[6] atheme.org (nenolod, jilles, dwr, gxti) ircd-ratbox, IRCD-Hybrid, ircu, ShadowIRCd C 2005 charybdis-3.3.0 GPL/BSD
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
Faerion IRC Server[7] vhex DreamForge C, C++ 2003 1.17.7.1[8] GPL
hyperion[9] freenode dancer-ircd 1.0.35+pre2 C 2005 ? (replaced by ircd-seven) GPL
InspIRCd [10] InspIRCd Development Team from scratch C++ 2002 2.0.17[11] GPL
ignitionServer[12] The Ignition Project Pure-IRCD (VB6 version) Visual Basic 2004 ignitionServer-0.3.6-P1[13] GPL[14]
IRCd[15] Jarkko Oikarinen, IRCnet[16] from scratch C[17] 1988 2.11.2[18] GPL v1
IRCD-Hybrid Hybrid Development Team, EFnet irc2.8 C 1997 8.2.1 GPL
ircd-ratbox Aaron Sethman, Lee Hardy, EFnet Hybrid 7-rc1 C 2002 ircd-ratbox-3.0.7 GPL
ircd-seven freenode charybdis 3.1.x/trunk C stable GPL
ircu[19] Undernet Coder Committee irc2.7[20] C[21] 1991 u2.10.12.14[22] GPL
ithildin[23] Chip Norkus from scratch C 2006 1.1[24] BSD[25]
miniircd[26] Joel Rosdahl from scratch Python 2003 0.4[27] GPL
Nefarious IRCu Evilnet Development, AfterNET ircu2.10.11.07 C 2004 u2.10.12.14+Nefarious(2.0.0) GPL
ngIRCd[28] Alex Barton from scratch C 2001[29] ngircd-19.1[30] 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(20090612_0-523) GPL
ProvisionIRCd[31] Rick Fernandez from scratch MSL 2006 2.0.5 QU9 GPL
pureIRCd Dennis Fisch aka Diligent from scratch C 2002 Unknown GPL
RockIRCd[32] Mike Chambers from scratch QuickBASIC[33] 2009 1.0.0-testing GPL
RubIRCd[34] Lloyd Dilley from scratch Ruby 2013 0.1a-maiden voyage GPL
ShadowIRCd[35] Taros, jdhore, jilles, nenolod Charybdis[35] C 2003 shadowircd-6.3.3 GPL
snircd QuakeNet ircu2.10.12[36] C[36] Unknown 1.3.4a[1] GPL[36]
solid-ircd Toshi Morita, Juan Baez,Gabriel Baez Bahamut C 2004[37] solid-ircd 3.4.8 GPL
Synchronet IRCd[38] Randy E. Sommerfeld from scratch JavaScript 2003 SynchronetIRCd-1.3a(1.151) GPL
TR-IRCd [39] Yusuf Iskenderoglu, Ekim Engin, Dimitris Ginosatiris, Maksut Cagil, Burak Cifter Hybrid 7 and Bahamut C 1999 5.6.1 GPL
UltimateIRCd ShadowRealm Creations DreamForge 2.8 C 2001 3.0.2 [40] (now unmaintained) GPL
UnrealIRCd[41] UnrealIRCd Team EliteIRCd (potvin)[42] C 1999 Unreal3.2.10[43] GPL
Viagra IRCd[44] Chris Schiffner Titan C 2003 1.3.3 (now unmaintained) GPL
WeIRCd Eloxoph IRC Network[45] from scratch C 2007 0.8.2 (now unmaintained) GPL

Operating system support[edit]

The operating systems the daemons can run on without emulation; also supported I/O facilities for network sockets (see IRCd for further information).

IRC daemon Windows DOS Mac OS Linux BSD Solaris HP-UX AIX select() poll() epoll[46] kqueue[47] threads RT signals[48] /dev/poll[49] Windows IOCP[50] Solaris IOCP[51]
Bahamut No No Yes Yes Yes Yes Unknown Unknown Yes Yes Yes Yes Unknown No Yes No No
bIRCd Yes No Unknown Yes Yes Yes Yes Unknown Yes Yes No No Unknown No No No No
Charybdis No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown No Yes No Yes
ConferenceRoom Yes No Yes Yes Yes Yes No No Yes Yes Yes Yes Unknown No Yes Yes No
InspIRCd[52][53] Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown No Yes Yes Yes
IRCD[54] Yes No No Yes Yes Yes Yes Yes Yes Yes No No Unknown No No No No
ircd-hybrid No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown No Yes No No
ircd-ratbox Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown Yes Yes No Yes
ircu No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown No Yes No No
ithildin No No No Yes Yes Unknown Unknown Unknown Yes Yes No Yes Unknown No No No No
miniircd Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No Unknown No No No No
Nefarious IRCu No No Yes Yes Yes Yes Yes Unknown Yes Yes Yes Yes Unknown No Yes No No
ngIRCd Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown No Yes No No
OfficeIRC Server Yes No Yes Yes Yes No No No Unknown Unknown No No Unknown No No Yes No
PleXusIRCd No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown Yes Yes No No
pureIRCd Yes No No No No No No No Yes No No No Unknown No No No No
RockIRCd No Yes No No No No No No No No No No Unknown No No No No
RubIRCd Yes No Yes Yes Yes Yes Yes Yes No No No No Yes No No No No
ShadowIRCd No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown Yes Yes No Yes
snircd No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown No Yes No No
solid-ircd No No Yes Yes Yes Yes Unknown Unknown Yes Yes Yes Yes Unknown No Yes No No
Synchronet IRCd Yes No Yes Yes Yes Yes Unknown Unknown Yes Yes Yes Yes Unknown No Yes No No
UnrealIRCd Yes No Yes Yes Yes Yes Unknown Unknown Yes No No No Unknown No No No No
WeIRCd Yes No Yes Yes Yes Unknown Unknown Unknown Yes No No No Unknown No No No No

Technology[edit]

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 SASL EXTERNAL support Server protocol
Bahamut Yes No Yes Yes Yes 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
beware ircd No No Yes No No No Yes No No No No No P10
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 No Proprietary, binary
InspIRCd Yes[55] Yes Yes Yes Yes Yes Yes Partial Yes Partial Yes Yes TS6-based [3]
IRCD No No Yes No No Yes No No No No No No RFC 2813 with IDs
IRCD-Hybrid Yes No Yes Yes Yes Yes Yes No No No No No TS6
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 No Module-dependent
miniircd No No No No No No No No No No No No No
Nefarious IRCu No No 2.0+ Yes Yes No Yes No No No No No P10 with extensions
ngIRCd No No Yes Yes Yes Yes Yes No No No No No RFC 2813
OfficeIRC Server Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown Compatible with DreamForge and UnrealIRCd
PleXusIRCd Yes No Yes Yes Yes Yes Yes No Yes No No No TS5/TS6
pureIRCd No No No No No No No No No No No No No
RockIRCd No No No No No No Yes No No No No No No
RubIRCd Yes No Yes Yes No No No Partial No No No No TS5 with extensions
ShadowIRCd Yes No Yes Yes Yes Yes Yes No No No Yes Yes TS6 with extensions
snircd No No Yes No No No Yes No No No No No P10 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 No TS5 with extensions
UnrealIRCd Yes Yes Yes Yes Yes Yes Yes No Module No 3.2.10+ No DreamForge/TS5 with extensions
WeIRCd Partial No Yes No No No Yes Yes (module) No No No No No

Features[edit]

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 modes are supported other than +t, which is forced. Since no user can become a chanop, no topic can be set. 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[56] Advanced operator ACL Operator "levels"[57] vHost via I-line (or equivalent) i18n nicknames[58] 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 Yes Yes No No
ConferenceRoom # & No No Yes No Yes Yes Yes Partial Partial
InspIRCd # Yes Module Module Module Yes Module Yes Module Old versions: MySQL, SQLite & PostgreSQL: Authorization, Services Integration, Logging, Operaccess
IRCD # & ! + No No No No Unknown No No No No
IRCD-Hybrid # Yes No No No No No Yes 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 No
miniircd + # & ! No No No No No No No No No
Nefarious IRCu # & Yes No No No Yes No Yes No No
ngIRCd # & + Yes[59] Yes Yes No No No No No No
OfficeIRC Server # %# & %& No Yes Yes Yes Partial Yes Yes Yes Partial
PleXusIRCd # & Yes Yes Yes No No Unknown Yes Unknown No
pureIRCd # No No Unknown Unknown Unknown Unknown Unknown Unknown Unknown
RockIRCd # No Yes Yes Unknown Unknown Yes No Unknown No
RubIRCd # & No Yes Yes No No No Partial No No
ShadowIRCd # & Yes Yes No No Yes Yes Yes No No
snircd # & No 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 Third party module[60] Third party module (netadmins)[61] Yes, vhost block in conf iso8859-1/2/7/8-I/9/16, windows-1250/1251, Multibyte MySQL & PostgreSQL: Third party modules [62]
WeIRCd # Yes No No No No No No No SQLite in services module
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 CGI:IRC/WEBIRC host spoofing
Bahamut Yes Yes / No Yes No / No No / No No No No Yes
bIRCd No No / No No No / No No / No No No No No
Charybdis Yes No / No Yes No / No No / No Yes Yes[citation needed] Yes Yes
ConferenceRoom Yes Yes / Yes Yes No / Yes Partial / No No Partial Yes No
InspIRCd Yes Yes / Yes Yes Yes / Yes Yes / Yes Yes Yes Yes Yes
IRCD Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown No
IRCD-Hybrid Yes No / No No No / No No / No No No No Yes
ircd-ratbox Yes No / No No No / No No / No No No No Yes
ircu Yes Unknown Unknown Unknown Unknown Unknown Unknown No No
ithildin Module No / No No No / No No / No No No Unknown Unknown
miniircd No No No No No No No No No
Nefarious IRCu Yes No / No No Yes / No No / No No No Yes Yes
ngIRCd No No / No No No / No No / No No No No Yes
OfficeIRC Server Yes Yes Yes Yes Yes Yes Yes Yes Unknown
PleXusIRCd Yes No / No No No / No No / No No No Unknown Unknown
pureIRCd Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
RockIRCd No Yes / No No No No No No No Unknown
RubIRCd No No No No No No No No No
ShadowIRCd Yes No / No Yes No / No No / No Yes Yes Yes Yes
solid-ircd Yes Yes / No Yes No / No No / No No No No Unknown
Synchronet IRCd Yes Yes / No Yes No / No No / No No / No No No Unknown
UnrealIRCd yes / NO Yes Yes Yes / No Yes / third party module[63] No No Third party module[64] Yes
WeIRCd Partial No / No No No / No No / No No No No Yes

Notes[edit]

  1. ^ a b The official website for the QuakeNet IRC network
  2. ^ DALnet: Bahamut project page
  3. ^ Linux Help - Bahamut Setup Guide
  4. ^ Official bIRCd website
  5. ^ beware ircd
  6. ^ Jilles' IRC page: charybdis
  7. ^ Faerion - ircd
  8. ^ Browse Faeron Software Components Files on SourceForge.net
  9. ^ freenode: hyperion-ircd
  10. ^ Inspire IRCd - The Stable, High-Performance Modular IRCd
  11. ^ Inspire IRCd - v2.0.17 released!
  12. ^ The Ignition Project : ignitionServer
  13. ^ The Ignition Project : Downloads
  14. ^ The Ignition Project | Get The Ignition Project at SourceForge.net
  15. ^ IRCD - the server
  16. ^ IRC history
  17. ^ Source code
  18. ^ Release Notes
  19. ^ Undernet Coder Committee
  20. ^ ServerWatch.com: Dalnet DreamForge Daemon
  21. ^ ircu2.10.12.12 source code (tar.gz)
  22. ^ [1]
  23. ^ Ithildin
  24. ^ Downloads - Ithildhin
  25. ^ Ithildin license file (master branch in repository)
  26. ^ Joel Rosdahl — Software
  27. ^ [2]
  28. ^ ngIRCd: Next Generation IRC Daemon
  29. ^ Initial ngIRCd git commit
  30. ^ ngIRCd download page
  31. ^ ProvisionIRCd Home Page
  32. ^ rubbermallet.org: RockIRCd
  33. ^ RockIRCd 1.0.0-testing source (.zip)
  34. ^ RubIRCd
  35. ^ a b ShadowIRCd
  36. ^ a b c http://www.quakenet.org/development/releases/snircd.12.10.1.3.4a.tar.gz
  37. ^ SolidIRCd SourceForge Project Page
  38. ^ ircd.js : The Synchronet IRCd Service
  39. ^ TR-IRC Daemon and Services
  40. ^ Browse The Ultimate IRC daemon Files on SourceForge.net
  41. ^ About UnrealIRCd
  42. ^ unrealircd.doc
  43. ^ Download Unreal
  44. ^ Viagra IRCd (Unmaintained/Orphaned)
  45. ^ WeIRCd - the simple & easy IRCd (IRC Daemon)
  46. ^ epoll. xmailserver.org. (Linux since 2.6) - I/O event notification facility. Has a much better performance than select() and poll() system calls.
  47. ^ kqueue (FreeBSD since 4.1) - asynchronous event dispatch mechanism.
  48. ^ "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.
  49. ^ Acharya, Shridhar (March 2002). "Using the devpoll (/dev/poll) Interface". Sun.com. Archived from the original on 2007-02-02. 
  50. ^ "CreateIoCompletionPort function". Microsoft MSDN Library.
  51. ^ "The Event Completion Framework for the Solaris Operating System (Solaris IOCP)". Sun.com.
  52. ^ "Supported Operating Systems" . InspIRCd.org.
  53. ^ "InspIRCd FAQ - Which socket engines are supported by InspIRCd?". InspIRCd.org.
  54. ^ [ 50 ]
  55. ^ Modules - Inspire IRCd (InspIRCd)
  56. ^ Operator prefixing: The ability for network staff (not channel ops, but ircd opers) to be denoted in a channel with a special prefix.[citation needed]
  57. ^ Operator "levels": protect "higher" opers from being killed and/or z, k, or g-lined by "lower" opers[citation needed]
  58. ^ "Features: nickchars". Vulnscan.org.
  59. ^ "Handle channel user modes 'a', 'h', and 'q' from remote servers". GitHub.
  60. ^ "custom coding: RestrictedOper". vulnscan.org.
  61. ^ "Modules". unreal.x-tab.org.
  62. ^ "Custom coding: SQLMod". Vulnscan.org.
  63. ^ "Modules: TextBan". Vulnscan.org.
  64. ^ "Modules: DNSBL Block". UnrealIRCd.com

See also[edit]

External links[edit]