ft_irc is an implementation of an Internet Relay Chat (IRC) server in C++98. This project aims to create a fully functional IRC server that complies with the IRC protocol as defined in RFC 2812, allowing users to communicate in real-time through channels and private messages.
- Supports multiple client connections
- Implements core IRC commands (JOIN, PRIVMSG, NICK, etc.)
- Channel management
- Private messaging
- User authentication
- Operator privileges
- Compliant with C++98 standard
- C++ compiler with C++98 support
- Make
-
Clone the repository:
git clone https://github.com/rdolzi/ft_irc.git cd ft_irc -
Compile the project:
make
This will create an executable named ircserv.
To start the IRC server:
./ircserv <port> <password>
<port>: The port number on which the server will listen for incoming connections.<password>: The password that clients need to provide to connect to the server.
You can use any IRC client to connect to the server. For example, using HexChat:
- Open HexChat
- Go to
Network List->Add - Set the server address to
localhostand the port to the one you specified when starting the server - In the
Connect Commandsfield, add:/PASS <password> - Click
Connect
For complete user guide click here: Comprehensive Irc User Guide.
Our IRC server follows a modular architecture with the following key components:
- Server: Manages client connections, channels, command execution, message routing
- Client: Represents a connected user
- Command Executor: Interprets and executes IRC commands
- Logger: Provides a centralized logging system
For a deeper understanding of the IRC protocol, refer to the following RFCs:
For user documentation and guides, please check the docs directory.