ft_irc

A fully functional IRC server built in C++, compatible with real IRC clients. The project required implementing the IRC protocol from scratch, handling multiple simultaneous clients over TCP using non-blocking I/O.

What it does

  • TCP server handling multiple clients simultaneously without blocking
  • Full IRC command support: NICK, USER, JOIN, PART, PRIVMSG, KICK, INVITE, TOPIC, MODE
  • Channel management with operator privileges
  • Channel modes: invite-only, topic lock, password, user limit
  • Authentication with server password
  • Compatible with standard IRC clients such as irssi

Tech Stack

  • C++98 — strict standard, no external libraries
  • POSIX sockets — socket, bind, listen, accept, recv, send
  • poll() for non-blocking I/O multiplexing across all clients