The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download | Blog | Stats

Comparison Of Features

From the makers of InspIRCd.

Jump to: navigation, search

Contents

Introduction

This page indicates the differences in feature sets between the most popular IRCds, compared to InspIRCd. Each feature is compared against InspIRCd, as of the current version. This table is updated as new features are added to IRCd implementations. If you find any inaccuracies on this page please do not hesitate to contact us.

  • Thanks to nenolod at Atheme.org for his original document (We have added a few extra rows to his tables) -- it saved us a lot of time and effort in coming up with the initial feature list.

Feature table

This table lists the feature sets of each IRCd.

Yes means the feature is supported, No means it is not supported or planned. Image:Money.png means the feature is implemented in the IRC server in question however the developers charge money for it, as an extra feature. Unknown means the status of this feature is unknown to us.

Feature InspIRCd ShadowIRCd Bahamut Hybrid Ratbox Charybdis PleXus UnrealIRCd
IPV6 Support Yes Yes No Yes Yes Yes Yes Partial, 4in6 only
Reloadable core commands Yes No No No No No No No
Modular Compression/Encryption 14 Yes No No No No No No No
SSL Client Certificate Support Yes No No No No Yes No Yes 13
Oper based on SSL Client Certificate Yes No No No No No No Yes 13
Advanced connect-flood detection Yes Yes No Yes Yes Yes Yes Image:Money.png
Bandwidth saving (idle gets +D) No No No No No No Yes No
Supports select() socketengine Yes No No No No No Yes Yes
Supports poll() socketengine Yes Yes Yes Yes Yes Yes Yes No
Supports epoll() socketengine Yes Yes Yes No Yes Yes No No
Supports kqueue() socketengine Yes Yes Yes Yes Yes Yes Yes No
Supports rtsigio() socketengine No Yes Yes Yes No No Yes No
Supports Solaris IOCP socketengine Yes No No No No Yes No No
Supports Windows IOCP socketengine Yes No No No No No No No
Portability: Native Windows support Yes No No No No No No Yes
Portability: Solaris support Yes 8 Yes Yes Yes Yes Yes Yes No
Portability: OpenVMS support No Yes Yes Yes No No No No
Portability: Mac OS X support Yes 12 Yes Yes Yes Yes Yes No No
Windows: Run as service Yes No No No No No No Yes
Windows: Statistics Graphs Yes No No No No No No No
Windows: Seperate UI and daemon process Yes No No No No No No No
Basic channel flood controls Yes Yes Yes Yes Yes Yes Yes Yes
Remote Includes Yes No No No No No No Yes
Executable Includes Yes No No No No No No No
Advanced channel flood controls Yes No No No No No No Yes
No create on split (avoids +ik bypass) No Unknown No Yes Yes Yes Unknown No
Modularity Yes Yes No Yes Yes Yes Yes Yes
Join throttling Yes No Yes No No Yes No Yes
Advanced Operator ACL 1 Yes Yes No No No No No No
Operator Prefixing 2 Yes Yes No No No No No No
Server notice selection (snomask) Yes Yes Yes Yes Yes Yes Yes Yes
Global client connection notices Yes Unknown No No No Yes Unknown Yes
Meshed Linking Planned 3 No No No No No No No
Modular Linking 9 Yes No No No No No No No
Unique IDs in server-server protocol Yes Yes No Yes Yes Yes No No
SSL Support Yes Yes No No No No No Yes
Supports GnuTLS Yes No No No No No No No
Supports OpenSSL Yes Yes No No No No No Yes
Modular SSL Support 10 Yes No No No No No No No
Encrypted link support 4 Yes Yes Yes Yes No No Yes Yes
Compressed server links Yes No Yes Yes Yes Yes Yes Yes
User mode for registered nicks Yes Yes Yes No No No Yes Yes
Track registered account name Yes No No No Yes Yes No No
Services Integration (builtin services) Planned No No No No No No No
RDBMS Integration (MySQL/PostgreSQL) Free No No No No No No Image:Money.png
SQL Authorization Module Free No No No No No No Image:Money.png
SQL Services Integration Free No No No No No No Image:Money.png
SQL Logging Free No No No No No No Image:Money.png
SQL Operaccess Module Free No No No No No No No
Nonblocking SQL Yes No No No No No No No
Spamfilter (Regexp) Yes Yes No No No No No Yes
Regexp: PCRE Yes No No No No No No No
Regexp: Glob Yes No No No No No No No
Regexp: TRE Yes No No No No No No Yes
Regexp: POSIX Yes No No No No No No No
Halfop support Yes Yes No Yes No No Yes Yes
'Founder' mode support Yes Yes No No No No No Yes
'Protect' mode support Yes No No No No No No Yes
Channel Censor Yes No No No No No No Yes
Chanop-Controlled Channel Censor Yes No No No No No No No
Glob match spamfilter Yes Yes No No No No No No
Choice of regex engines for spamfilter, etc Yes Yes No No No No No No
Nickname locking Yes No No No No No No No
Command enable/disable Yes No No No No No No No
Variable per-channel banlist size Yes No No No No Yes No No
REMOVE command Yes No No No No No No No
Timed bans Free No No No No No No Image:Money.png
Hostmasking Yes Yes No No No Yes Yes Yes
vHost via i:line (or equivalent) Yes Yes No Yes Yes Yes Yes Image:Money.png
vHost via services Yes Yes No No No Yes Unknown Yes

User and channel modes

See Comparison Of Modes Available.

Protocol Compatibility

This table indicates the protocols supported by each of the above IRCds.

IRCd Protocol Information
InspIRCd Dependent upon linking module. m_spanningtree.so implemements a TS6-like protocol, with added influence from dreamforge and ircu, as well as metadata.
UnrealIRCd A mixture of DreamForge and EFnet TS with SJOIN, extra user modes, SPAMFILTER, etc.
ShadowIRCd A proprietary protocol which is a hybrid of EFnet TS6 and Undernet P10 concepts.
Bahamut EFnet TS5 with extensions
Hybrid, Ratbox EFnet TS5/TS6 [5]
Charybdis EFnet TS5/TS6 with extensions
PleXus EFnet TS5 with extensions

Services Support

This compares the compatibility from vendor branches.

Services Package InspIRCd ShadowIRCd Bahamut Hybrid Ratbox Charybdis PleXus UnrealIRCd
Atheme Yes Yes Yes Yes Yes Yes Yes Yes
Anope v1.6.xx No No Yes Yes No No No Yes
Anope v1.7.xx Yes Yes Yes Yes Yes Yes Yes Yes
Auspice No No No No No No No Yes
Cygnus IRC Services No No Yes 6 No No No No Yes
IRCServices 5.x Yes Yes 7 Yes Yes No No No Yes
CServices Yes No No No No No No No
HybServ No No No Yes Yes No No No
SirvNET 3 Services No No Yes No No No No No
Shrike No No No Yes Yes No No No
SRVX No No Yes No No No No No
Ratbox Services No No No No Yes No No No
Denora IRC Statistics Yes Yes Yes Yes Yes Yes Yes Yes
GNU Thales No No Yes Yes No No No Yes
NeoStats Yes No Yes Yes No No No Yes
IRC Defender Yes No Yes Yes Yes No No Yes

Code Comparison

Feature InspIRCd ShadowIRCd Bahamut Hybrid Ratbox Charybdis PleXus UnrealIRCd
Lines of code (approx) 54000 109183 71356 92824 67885 64639 85980 120627
Unzipped size 2.1mb 4.9mb 3.2mb 5.1mb 3.7mb 3.7mb 5.6mb 13mb
Number of goto's (approx) 0 53 104 153 58 65 61 114
Percentage comments (approx) 23% 13% 19% 12% 11% 12% 9% 18%

Notes

  1. The ability to assign abstract classes to a user, such as "netadmin".
  2. The ability for network staff to be denoted in a channel with a special prefix.
  3. The ability to have a mesh of servers instead of an acyclic distribution graph. In InspIRCd, this was supported before beta 5, it is planned to be re-implemented as a module in later versions.
  4. Encrypted links can either be through a context, or SSL.
  5. TS6 is not available in hybrid-7.0. Support is available in the 7.1 beta.
  6. Cygnus does not support bahamut 1.8.x.
  7. IRCServices support for this ircd is available through a third-party module.
  8. Tested and supported on solaris 10 only
  9. The ability to hot-swap the linking protocol via a dynamic module or restart, without recompiling or patching
  10. The ability to hot-swap the SSL support via dynamic modules, without recompiling or patching. In the case of InspIRCd, also without requiring a restart
  11. Multithreaded DNS is implemented only in 1.0.x and is not recommended for production use.
  12. Support for MacOS X exists in 1.1 from the 1.1.x stable releases, and in all 1.0.x builds. 1.1 InspIRCd support is via a build of InspIRCd planned to be included with OS X 10.5.
  13. On UnrealIRCd this is a compile time option, activated by editing a header file and uncommenting a #define statement.
  14. Not including using seperate forked processes, such as hybrid's servlink
Personal tools
head
Navigation
head
head
head
head
 
head
head
Toolbox
head
head