Skip to content

Architecture

Arthur Poulet edited this page Aug 8, 2016 · 3 revisions

# Files and directories

  • bot extension specifics to the client. It is an easier interface to create IRC bots.
  • client is the representation of an active and controllable client (bot, user, ...). It can send a message, receive and trigger hooks on them.
  • has_socket
  • irc_sender
  • server

client/

includes the bindings and the connection protocols.

commands/

API to create IRC messages.

  • The commands must represent the RFC.
  • Each command must be represented by only one function. There must not be any overload of those (for example, join takes a Array(Chan) as parameter, not Array(String) nor String nor Chan.) Those high level api should be added in an other abstraction layer.
  • They must be wrapped in a module, by type (chan, user, ping, talk).
  • They must interact with protocol entities (Chan, User, Target)

protocol/

API to represent IRC entities (chans, users, message, ...).

server/

contains server specifics.

utils/

contains the hooking system, nick, and generic features.

Clone this wiki locally