Version Française

Sp4ce.net rss

IRC server in Erlang language

For a school project at Télécom ParisTech, I made a IRC Server with the programming language Erlang. The server is far to be complete, but you can use it with usual client such as Xchat or mIRC. Moreover, it is an interesting use of the Erlang capacity of being update without rebooting the program.

Erlang

Erlang is not a very common language, but very useful. I invite you to read wikipedia to learn more about it. From my point of view, I liked Erlang for two reasons. First of all, it is similar to CamL, a language I like because it uses a match-case paradigm. And secondly, THE point of Erlang is that you can update your code, and then apply the change without restarting the module you are running !

This capacity is adapted to IRC, because if you have clents (users) connected on your server and you need to update it, you can do it whitout restarting it, so any user will be disconnected. This make the server very stable across updates.

IRC

Internet Relay Chat allow you to talk with other users using a channel system. Channel can be described as meeting rooms. Users can discuss in the same time. IRC is an old protocol and it is fully specified by the last rfc which is rfc2813. I tried to follow as much as possible this rfc, but my server is very simple.

Links

Project’s sources

Project s slides Version Française (Français uniquement)

Details on IRC rfc