ircv3 library
i had this thought that it might be possible to implement things like SASL auth, capabilities, etc, all as middleware
type Handler interface { Handle(w MessageWriter, m *Event) }
turns out its working so far.