/python-ircd

An experimental IRC server in Python

Primary LanguagePython

python-ircd Build Status

Aims to be a full-featured IRC server, started as a way to get some Python practice. The primary priority is complete support of the three RFCs describing the IRC protocol.

Running

  1. Optionally set up a virtualenv with Python 2.7.
  2. Install dependencies with pip install -r requirements.txt
  3. Run the server with python application.py

Status

The basic framework is mostly stable. Command handlers get an abstract message object, operate on the database, and return similar abstract message objects. The database currently consists of simplistic in-memory dictionaries. Messages are passed to the handlers and to the targets in a generic way. Incoming messages are parsed with pyparsing. No server-server communication yet.

Dependencies

python-ircd is developed on Python 2.7

Used libraries:

  • gevent: Networking
  • dnspython: Reverse DNS lookups
  • pyparsing: Parsing incoming messages
  • PyDispatcher: Notifying parts of the system to runtime config changes