IRC Server in Go

Progress Update: 2014-12-03

The Prototype

So I’ve started to build my prototype, which is able to accept incoming connections and understand a couple of basic commands. One thing I didn’t anticipate is that the spec for the IRC protocol is somewhat confusing, having checked both RFC 1459 and the newer RFC 2812, and also using wireshark to snoop some live data, I found that actually I need to handle users and nicks from the very beginning, as the first two commands the client will usually send are USER and NICK, both of which need to have a proper response for the client to recognize the connection.

Next Steps

The next thing I need to do for this prototype is to properly handle the initial USER and NICK commands the client will send, and to also handle client-requested PING commands, to keep the connection open.
I can then add a single channel to the server and then work on the message broadcasting.

Once that is done I can start to think about using what I’ve learnt from this prototype in a more maintainable version with more features.

1 Like