主要的 IRC daemons

推荐使用:

  • InspIRCd: 使用 C++ 从零编写,功能丰富,被 Freenode 使用;
  • UnrealIRCd: 源自 ircd-irc2,功能丰富,使用最广泛,支持 chathistory
  • Ergo: 功能丰富,内置 IRC services,使用 Go 编写,最丰富的 IRCv3 协议支持,支持 chathistory
  • Solanum: 源自 Charybdis,被 Libera Chat 使用,功能比较少;
  • ngircd: 功能极简,适合小范围或测试使用;

不推荐使用:

  • Charybdis: 源自 ircd-ratbox,功能比较丰富,Libera Chat 曾经使用,已停止开发;
  • ircd-ratbox: 源自 ircd-hybrid,功能很少,被 EFnet 使用,已停止开发;
  • ircd-hybrid: 源自 ircd-irc2,老牌 irc daemon,功能很少,被 EFnet, OFTC, Rizon 使用,新网络推荐使用 Solanum;
  • ircd-ircu: 源自 ircd-irc2,功能很少,依然被 Undernet 使用;
  • ircd-irc2: 功能很少,最早的 IRC daemon, IRCnet 使用,已停止开发;

IRC daemon 谱系

https://github.com/grawity/irc-docs/blob/master/family-tree.txt

星号表示仍在维护。

ircd-irc2  ->  ircd-hybrid*  ->  ircd-ratbox  ->  Charybdis  ->  Solanum*
     \     \               \ \                               \
      \     `-> ircd-ircu*  \ `-> ircd-dancer -> Hyperion     `-> ircd-seven
       \               \     \
        `-> DreamForge  \     `-> Bahamut*
             \           `-> snircd
              \
               `-> ShadowX-ircd -> EliteIRCd -> UnrealIRCd*

IRC services

提供 NickServ, ChanServ, MemoServ, OperServ, BotServ, HostServ 等服务。

  1. https://github.com/atheme/atheme
  2. https://github.com/anope/anope
  3. https://github.com/evilnet/x3

IRC daemon 统计

模块数量

$ for d in *; do echo -ne "$d\t";
  if [ $d = unrealircd ]; then
    grep --include '*.c' -Ewrl 'ModuleHeader +MOD_HEADER' unrealircd/src/src/modules;
  else
    find $d -iname 'm_*.c*' -type f;
  fi | wc -l; done | tabulate -f plain | sort
charybdis       93
ergo             0
inspircd       180
irc2-mirror      0
ircd-hybrid     83
ircu2           77
ngircd           0
ratbox-mirror   79
solanum         95
unrealircd     255

代码行数

$ for d in *; do echo -ne "$d\t";
  tokei -t 'c,c++,c header,c++ header,go' -e libltdl -e 'test*'\
    -e 'vendor*' -e 'sqlite*' -e '*_test.go' $d |
  grep Total | awk '{print $4}'; done |
  tabulate -f plain | sort -k2,2nr
unrealircd     117090
charybdis       69410
solanum         67183
inspircd        61231
ratbox-mirror   45526
ircd-hybrid     43823
ircu2           39655
irc2-mirror     38948
ergo            29652
ngircd          19099

部署数量

https://www.ircstats.org/servers IRC server stats

YearAllUnrealIRCdInspIRCdErgoSolanumngIRCdHybridIRCUBahamutBewareCharybdisConferenceRoomDancerIRCNetNefariousRatboxSevensnircdSynchronetIRCdOther
2016051078146571612--7141480242113101266406951581248183779509
2017098995388614282-614108522210162259354942066189283167451
20181269202946118813-5017761858433204252827272139321967336
2019126344264711799-4736701698029185232523563140291672300
20201268852661133984-60568416984261942616217681413119-521
202112658125401382118515826101446924172271517655116615145334
202212607623041259164625255471136329138171313646103618162371
2023125494207111761926547745384492311419711941104521139335
202412526019781141245704683861054615941779935102413139296
202512499118661098329694483298641137916791319531398279

主要的 IRC network

1988 年 IRC 诞生,作者 Jarkko “WiZ” Oikarinen。

EFnet 1990, ircd-hybrid/ratbox
   |-- Undernet 1992, ircd-ircu
   |       |-- Dalnet 1994, Bahamut
   |       `-- oz.org 1996
   `-- IRCnet 1996, The Great Split, ircd-irc2

Quakenet 1997, snircd(based on ircd-ircu)
Freenode 1998, InspIRCd,以前用 ircd-dancer/hyperion/seven
   `-- Libera.Chat 2021, Solanum
OFTC 2001, otft-hybrid
Rizon 2003, Plexus IRCd(based on Hybrid)

大多数大型 IRC 网络使用 ircd-hybrid(EFnet, OFTC, Rizon) 和其派生如 Solanum(Libera.Chat)、Bahamut(Dalnet)、ircd-ratbox(EFnet),少量使用 ircd-irc2(IRCnet) 和其派生如 ircd-ircu(Undernet)、snircd(Quakenet)。

参考