IRC server software compared: Solanum, UnrealIRCd, InspIRCd, Ergo and friends
Updated July 15, 2026
An IRCd (IRC daemon) is the program running on an IRC server — the thing that accepts connections, relays messages, and enforces channel modes. If you want to run your own network, this is the central choice, and there's one genuine fork in the road worth understanding before the feature lists: classic federated daemons versus the modern all-in-one approach. Everything else is detail.
The one decision that matters: federation or not
Traditional IRCds are built to link into a network — multiple servers connecting to each other (server-to-server, "S2S") so that a network can span many machines and survive one going down. This is the "network" in "IRC network," and it's the hard part: it's what makes netsplits a thing, and it's what every big public network needs.
Ergo deliberately doesn't do this. It's a single self-contained server with no S2S linking — and in exchange it bundles everything else (accounts, channel registration, history, bouncer behaviour) into one binary. For a single-community server, that trade is often exactly right. For a real multi-server network, it's a non-starter. Pick your side of this line first; it eliminates half the options immediately.
The classic federated daemons
These are what the large public networks actually run. All written in C/C++, all support server linking, all mature.
- Solanum — the modern Charybdis descendant, and what Libera.Chat runs. If you want "what the biggest, most respected FOSS network uses," it's this. Pairs with Atheme services. A sensible default for a serious new FOSS-style network.
- UnrealIRCd — the most widely deployed IRCd in the world, powering thousands
of networks since 1999. Highly modular, batteries-included (built-in flood
protection via
+F, spam filtering), and actively developed — recent releases even added post-quantum cryptography support. The pragmatic choice for a general-purpose network that wants features out of the box. - InspIRCd — modular, written from scratch, C++. Everything is a loadable module, so you build up exactly the feature set you want. Popular with networks that like fine-grained control. (The relaunched freenode runs InspIRCd.)
- ircd-hybrid — a long-lineage daemon, lean and stable, the common ancestor of much of this family (Charybdis and others descend from it). A conservative, no-surprises option.
- ircu2 / ngIRCd / IRCnet's ircd — the daemons behind specific old networks (Undernet and IRCnet respectively), plus ngIRCd as a lightweight, easy-to-configure choice for small setups.
The modern all-in-one
- Ergo (formerly Oragono) — written in Go, and the bleeding-edge
IRCv3 reference implementation. Its pitch is
consolidation: an IRCd, a services framework
(built-in NickServ/ChanServ/HostServ), and bouncer
features (server-side history, multiple clients per nick) in one binary with
a single YAML config you can reload at runtime. Native TLS, SASL-everywhere,
IP cloaking, even Tor-hidden-service support. The catch, again: no
server-to-server linking — all clients connect to the one instance. For a
self-hosted community server, a tildeverse-style box, or testing IRCv3 client
code, it's the easiest and most modern option by a distance. There's a public
test instance at
testnet.ergo.chat.
So which should you run?
- A single community / small private server, modern features, least hassle → Ergo. One binary, services and history included, done.
- A serious new FOSS-style network → Solanum + Atheme, mirroring Libera.
- A general network wanting features out of the box → UnrealIRCd.
- Maximum modular control → InspIRCd.
- Lean and conservative → ircd-hybrid or ngIRCd.
The hands-on walkthrough for standing one up — DNS, TLS certificates, config, linking — is in run your own IRC server, and the Ergo-specific quickstart is in the Ergo setup guide. For tracking what's actively maintained, the awesome-irc list stays current.