Skip to content

πŸ’¬ a simple IRC server built from scratch in C++

Notifications You must be signed in to change notification settings

okbrandon/ft_irc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

98 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’¬ ft_irc

ft_irc is a project from the 42 school, focused on creating an IRC server following standard internet communication protocols. The server's performance is evaluated using a real IRC client.

Top used language GitHub last commit

πŸ“š Table of Contents

πŸ‘¨β€πŸ« Quick demonstration

basic-demo.mov

Basic demonstration

bot-demo.mov

Demonstration with our chatbot powered with OpenAI.

πŸ“¦ Installation

Clone the repository from GitHub:

git clone https://github.com/okbrandon/ft_irc.git

Compile the server executable:

make

Compile the server executable with debug logs:

make logs

With this executable you'll be able to see every input going to the server and every output from the server.

Note

The executable contains the mandatory and bonus part combined.
Our reference client is IRSSI.

πŸ“ Usage

Run the server executable:

./ircserv <port> <password>

Where the port parameter is on which your IRC server will be listening to for incoming IRC connections. And password is the connection password. It will be needed by any IRC client that tries to connect to your server.

Note

Be aware that the port should only be between 1 inclusive and 65535 exclusive.

πŸ“ Example

The subject asks to implement the following commands: KICK, TOPIC, INVITE and MODE with the flags i, t, k, o and l. We also implemented other commands such as: PRIVMSG, CAP, JOIN, NICK, PART, PING, QUIT and USER.

When joining the server with our reference client, you should be automatically authentified. welcome-img

From here you can send other commands, for instance if you want to create a channel or join an existing one use: /JOIN myChannel. Now you're inside a channel, you can send messages and do what ever you want on this wonderful server! :) inside-channel-img

πŸ“Ž References

⬆ Back to Top

🌏 Meta

bsoubaig - bsoubaig@student.42nice.fr
evmorvan - evmorvan@student.42nice.fr

Releases

No releases published

Packages

No packages published