主要的 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 等服务。
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
| Year | All | UnrealIRCd | InspIRCd | Ergo | Solanum | ngIRCd | Hybrid | IRCU | Bahamut | Beware | Charybdis | ConferenceRoom | Dancer | IRCNet | Nefarious | Ratbox | Seven | snircd | SynchronetIRCd | Other |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 201605 | 10781 | 4657 | 1612 | - | - | 714 | 1480 | 242 | 113 | 101 | 266 | 40 | 69 | 515 | 81 | 248 | 18 | 37 | 79 | 509 |
| 201709 | 8995 | 3886 | 1428 | 2 | - | 614 | 1085 | 222 | 101 | 62 | 259 | 35 | 49 | 420 | 66 | 189 | 28 | 31 | 67 | 451 |
| 201812 | 6920 | 2946 | 1188 | 13 | - | 501 | 776 | 185 | 84 | 33 | 204 | 25 | 28 | 272 | 72 | 139 | 32 | 19 | 67 | 336 |
| 201912 | 6344 | 2647 | 1179 | 9 | - | 473 | 670 | 169 | 80 | 29 | 185 | 23 | 25 | 235 | 63 | 140 | 29 | 16 | 72 | 300 |
| 202012 | 6885 | 2661 | 1339 | 84 | - | 605 | 684 | 169 | 84 | 26 | 194 | 26 | 16 | 217 | 68 | 141 | 31 | 19 | - | 521 |
| 202112 | 6581 | 2540 | 1382 | 118 | 51 | 582 | 610 | 144 | 69 | 24 | 172 | 27 | 15 | 176 | 55 | 116 | 6 | 15 | 145 | 334 |
| 202212 | 6076 | 2304 | 1259 | 164 | 62 | 525 | 547 | 113 | 63 | 29 | 138 | 17 | 13 | 136 | 46 | 103 | 6 | 18 | 162 | 371 |
| 202312 | 5494 | 2071 | 1176 | 192 | 65 | 477 | 453 | 84 | 49 | 23 | 114 | 19 | 7 | 119 | 41 | 104 | 5 | 21 | 139 | 335 |
| 202412 | 5260 | 1978 | 1141 | 245 | 70 | 468 | 386 | 105 | 46 | 15 | 94 | 17 | 7 | 99 | 35 | 102 | 4 | 13 | 139 | 296 |
| 202512 | 4991 | 1866 | 1098 | 329 | 69 | 448 | 329 | 86 | 41 | 13 | 79 | 16 | 7 | 91 | 31 | 95 | 3 | 13 | 98 | 279 |
主要的 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)。