MCPSERV.CLUB
UnrealIRCd

UnrealIRCd

Self-Hosted

Secure, modular IRC server for modern networks

Active(95)
471stars
0views
Updated 1 day ago

Overview

Discover what makes UnrealIRCd powerful

UnrealIRCd is a **high‑performance, modular IRC server** that has powered thousands of networks since 1999. It is written in **C++** (primarily legacy C with modern extensions) and compiled for Linux, macOS, and Windows. The core daemon is a single threaded event loop that handles thousands of simultaneous TCP connections with minimal latency, thanks to an efficient poll‑based I/O model and a lightweight memory allocator. The server’s configuration is file‑driven, using a domain‑specific language that supports *remote includes*, *conditional directives*, and *runtime reloading* of most settings without restarting the daemon.

Core

Modularity

Data Store

Networking

Overview

UnrealIRCd is a high‑performance, modular IRC server that has powered thousands of networks since 1999. It is written in C++ (primarily legacy C with modern extensions) and compiled for Linux, macOS, and Windows. The core daemon is a single threaded event loop that handles thousands of simultaneous TCP connections with minimal latency, thanks to an efficient poll‑based I/O model and a lightweight memory allocator. The server’s configuration is file‑driven, using a domain‑specific language that supports remote includes, conditional directives, and runtime reloading of most settings without restarting the daemon.

Architecture

  • Core – A single‑process, event‑driven C++ engine that parses IRC protocol messages and enforces the RFCs plus IRCv3 extensions.
  • Modularity – Plugins (called modules) are shared libraries (.so/.dll) loaded at runtime. Each module exposes a C API that the core calls for hooks such as OnUserLogin, OnChannelMessage, or OnTimer.
  • Data Store – User and channel metadata are kept in memory; persistence is achieved through flat files (users.conf, channels.conf) and optional SQLite for logging or authentication back‑ends.
  • Networking – Supports IPv4/IPv6, TLS/SSL via OpenSSL or BoringSSL, and optional QUIC for future extensions.
  • Security – Built‑in cloaking, anti‑flood, anti‑spam, GeoIP lookups (via MaxMind DB), and a modular firewall that can be extended with custom Lua scripts.

Core Capabilities

  • IRCv3 Compliance – Full support for tags, extended commands (PONG, CAP), and modern channel modes.
  • Extensible Module API – Doxygen‑generated documentation for the module interface allows developers to write custom authentication, rate limiting, or logging modules in C/C++.
  • Remote Includes – Configuration directives can pull files over HTTP/HTTPS, enabling dynamic configuration from a central server.
  • Event Hooks – Exposes callbacks for nearly every IRC event, allowing fine‑grained control over message routing, user bans, and channel management.
  • Scripting – Optional Lua integration for lightweight scripting without recompiling modules.

Deployment & Infrastructure

UnrealIRCd is designed for self‑hosting on commodity hardware or virtual machines. It runs as a single binary, making it straightforward to containerize with Docker (official images exist) or deploy via systemd services. The server scales linearly with CPU cores; a typical 8‑core host can comfortably handle tens of thousands of concurrent users. For high availability, operators often run multiple instances behind a load balancer and use shared configuration via NFS or Git repositories.

Integration & Extensibility

  • API – While there is no REST API, the module system acts as a plugin interface. Developers can expose HTTP endpoints from within modules if needed.
  • Webhooks – Modules can emit JSON payloads to external services (e.g., Slack, Discord) upon user join/leave or message events.
  • Custom Authentication – Modules can hook into the login process to validate against LDAP, OAuth2, or custom databases.
  • Custom Channel Modes – New modes can be added via modules, enabling features like per‑channel rate limits or topic locks.

Developer Experience

The project offers comprehensive online documentation (docs.unrealircd.org) with API references, configuration guides, and module development tutorials. The community is active on the official forums and an IRC channel (#unreal-devel). Bug tracking is handled through a dedicated tracker, and the codebase follows a strict release cadence with clear EOL policies. Licensing is GPLv3, ensuring freedom to modify and redistribute while requiring derivative works to remain open.

Use Cases

  • Enterprise Messaging – Secure, TLS‑enabled IRC for internal communication with granular access controls.
  • Gaming Communities – Low‑latency chat for large player bases, leveraging UnrealIRCd’s anti‑spam and flood controls.
  • Open‑Source Projects – Public IRC networks with custom authentication modules for contributor management.
  • Educational Platforms – Deploy a sandboxed IRC server to teach network protocols and event‑driven programming.

Advantages

  • Performance & Stability – A battle‑tested, single‑threaded engine that remains responsive under heavy load.
  • Modularity – Developers can extend or replace functionality without touching the core, reducing risk of regressions.
  • Security Focus – Built‑in cloaking, anti‑spam, and GeoIP filtering provide a hardened baseline out of the box.
  • Licensing & Community – GPLv3 licensing combined with an active developer community ensures long‑term support and rapid feature evolution.

UnrealIRCd remains a compelling choice for developers who need a robust, configurable IRC server that can be tailored to niche requirements while maintaining high performance and security.

Open SourceReady to get started?

Join the community and start self-hosting UnrealIRCd today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
apis-services
License
GPL-2.0
Stars
471
Technical Specs
Pricing
Open Source
Database
None
Supported OS
LinuxWindowsmacOS
Author
unrealircd
unrealircd
Last Updated
1 day ago