Libircclient

libircclient is a small but extremely powerful library which implements the IRC protocol. It is designed to be small, fast, portable and compatible with the RFC standards as well as non-standard but popular features. It is perfect for building the IRC clients and bots.

Current version is 1.9 released on May 3, 2016.

The library provides the following features:

  • Full coverage of the IRC protocol using providing functions;
  • Supports multiple simultaneous connection to different IRC servers or even to the same server;
  • Supports both plain and SSL connections to the IRC servers with the optional certificate check;
  • Comprehensive documentation, examples and FAQ;
  • Full multi-threading support, the library is thread-safe;
  • All the processing could be handled by a single thread even if multiple connections are used;
  • Non-blocking, asynchronous event-based interface implemented with callbacks;
  • Extra support for the socket-based applications, which use select();
  • CTCP support with optional build-in reply code;
  • Supports CTCP PING necessary to pass the “spoof check” implemented by most IRC servers;
  • Flexible DCC support, including both DCC chat, and DCC file transfer;
  • Can both initiate and react to initiated DCC;
  • Can accept or decline DCC sessions asynchronously;
  • Written in plain C, very small binary size (around 30K depending on platform);
  • Compatible with RFC 1459 and most IRC clients;
  • Free software licensed under LGPL license;
  • Supports Linux as well as any POSIX-compliant Unix, Mac OS X and Microsoft Windows;
  • Could be compiled with optional IPv6 support;
  • Cocoa interface by Nathan Ollerenshaw;