Comparison of Internet Relay Chat daemons

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found.

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, be warned.

Servers

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.7 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.4.2 GPL/BSD
dancer-ircd freenode Hybrid 6 C 1999 ? (replaced by hyperion) GPL
Elemental-IRCd[7] [8] ShadowIRCD C 2007 6.6.2 GPL2
DreamForge DALnet irc2.8.mu3 C 1994 (dal), 1997? (df) ? (replaced by bahamut) GPL
Faerion IRC Server[9] vhex DreamForge C, C++ 2003 1.17.7.1[10] GPL
hyperion[11] freenode dancer-ircd 1.0.35+pre2 C 2005 ? (replaced by ircd-seven) GPL
InspIRCd [12] InspIRCd Development Team from scratch C++ 2002 2.0.20[13] GPL
ignitionServer[14] The Ignition Project Pure-IRCD (VB6 version) Visual Basic 2004 ignitionServer-0.3.6-P1[15] GPL[16]
IRCd[17] Jarkko Oikarinen, IRCnet[18] from scratch C[19] 1988 2.11.2[20] GPL v1
ircd-hybrid[21] ircd-hybrid Development Team,[22] OFTC, EFnet irc2.8[23] C[23] 1997[23] 8.2.16[24] GPL[25]
ircd-ratbox Aaron Sethman, Lee Hardy, EFnet Hybrid 7-rc1 C 2002 ircd-ratbox-3.0.10 GPL
ircd-seven freenode charybdis 3.1.x/trunk C stable GPL
ircu[26] Undernet Coder Committee irc2.7[27] C[28] 1991 u2.10.12.14[26] GPL
ithildin[29] Chip Norkus from scratch C 2006 1.1[30] BSD[31]
kike[32] Přemysl Janouch from scratch C 2015 0.9[33] ISC
miniircd[34] Joel Rosdahl from scratch Python 2003 1.1[35] GPL
Nefarious IRCu Evilnet Development, AfterNET ircu2.10.12.14 C 2004 u2.10.12.14+Nefarious(2.0.0) GPL
ngIRCd[36] Alex Barton from scratch C 2001[37] ngircd-19.1[38] 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[39] Sirius, Y4kuzi from scratch mSL 2006 2.2 GPL
pureIRCd Dennis Fisch aka Diligent from scratch C 2002 Unknown GPL
RockIRCd[40] Mike Chambers from scratch QuickBASIC[41] 2009 1.0.0-testing GPL
RubIRCd[42] Lloyd Dilley from scratch Ruby 2013 0.1a-maiden voyage GPL
ShadowIRCd[43] Taros, jdhore, jilles, nenolod Charybdis[43] C 2003 6.3.3 GPL
snircd QuakeNet ircu2.10.12[44] C[44] Unknown 1.3.4a[1] GPL[44]
solid-ircd Toshi Morita, Juan Baez,Gabriel Baez Bahamut C 2004[45] solid-ircd 3.4.8 GPL
Synchronet IRCd[46] Randy E. Sommerfeld from scratch JavaScript 2003 SynchronetIRCd-1.3a(1.151) GPL
TR-IRCd [47] 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 [48] (now unmaintained) GPL
UnrealIRCd[49] UnrealIRCd Team EliteIRCd (potvin)[50] C 1999 Unreal4.0.0[51] GPL
Viagra IRCd[52] Chris Schiffner Titan C 2003 1.3.3 (now unmaintained) GPL
WeIRCd Eloxoph IRC Network[53] from scratch C 2007 0.8.2 (now unmaintained) GPL
Pocosi[54] Chris Williams, Hinrik Örn Sigurðsson POE::Component::Server::IRC[55] Perl 2003 0.02 (1.53 of POE::Component::Server::IRC) Artistic

Operating system support

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[56] kqueue[57] threads RT signals[58] /dev/poll[59] Windows IOCP[60] Solaris IOCP[61]
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[62][63] Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown No Yes Yes Yes
IRCD[64] 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 No 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
kike No No Unknown Yes Yes Unknown Unknown Unknown No Yes Yes No No No No No No
miniircd Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No 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 Emulated 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 Yes Yes Yes Yes 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

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[65] Yes Yes Yes Yes Yes Yes Partial Yes Partial Yes Yes custom[66]
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
kike No No Yes Yes No No No No No No No No No
miniircd No No No Yes No No No No No No No No No
Nefarious IRCu No No 2.0+ Yes Yes No Yes No No No 2.0+ 2.0+ 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 Yes 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

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[67] Advanced operator ACL Operator "levels"[68] vHost via I-line (or equivalent) i18n nicknames[69] 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
kike # No No No No No No 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[70] 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 # Yes Yes Yes Yes No Yes Yes 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[71] Third party module (netadmins)[72] Yes, vhost block in conf iso8859-1/2/7/8-I/9/16, windows-1250/1251, Multibyte MySQL & PostgreSQL: Third party modules [73]
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
kike No No No No No No No No No
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[74] No No Third party module[75] Yes
WeIRCd Partial No / No No No / No No / No No No No Yes

Notes

  1. 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. freenode: hyperion-ircd
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. The Ignition Project : ignitionServer
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Source code
  20. Release Notes
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. 23.0 23.1 23.2 Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. 26.0 26.1 Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. ircu2.10.12.12 source code (tar.gz)
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Downloads - Ithildhin
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. RockIRCd 1.0.0-testing source (.zip)
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. 43.0 43.1 ShadowIRCd Archived August 13, 2010 at the Wayback Machine
  44. 44.0 44.1 44.2 http://www.quakenet.org/development/releases/snircd.12.10.1.3.4a.tar.gz
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. ircd.js : The Synchronet IRCd Service
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. unrealircd.doc
  51. Lua error in package.lua at line 80: module 'strict' not found.
  52. Lua error in package.lua at line 80: module 'strict' not found.
  53. Lua error in package.lua at line 80: module 'strict' not found.
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. Lua error in package.lua at line 80: module 'strict' not found.
  56. epoll. xmailserver.org. (Linux since 2.6) - I/O event notification facility. Has a much better performance than select() and poll() system calls.
  57. kqueue (FreeBSD since 4.1) - asynchronous event dispatch mechanism.
  58. "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.
  59. Lua error in package.lua at line 80: module 'strict' not found.
  60. "CreateIoCompletionPort function". Microsoft MSDN Library.
  61. "The Event Completion Framework for the Solaris Operating System (Solaris IOCP)". Sun.com.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. [ 50 ]
  65. Lua error in package.lua at line 80: module 'strict' not found.
  66. Lua error in package.lua at line 80: module 'strict' not found.
  67. 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]
  68. Operator "levels": protect "higher" opers from being killed and/or z, k, or g-lined by "lower" opers[citation needed]
  69. "Features: nickchars". Vulnscan.org.
  70. "Handle channel user modes 'a', 'h', and 'q' from remote servers". GitHub.
  71. "custom coding: RestrictedOper". vulnscan.org.
  72. "Modules". unreal.x-tab.org.
  73. "Custom coding: SQLMod". Vulnscan.org.
  74. "Modules: TextBan". Vulnscan.org.
  75. "Modules: DNSBL Block". UnrealIRCd.com

See also

External links