An experimental IRC server in Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
commands
config
include
models
tests
.gitignore
.travis.yml
README.md
application.py
integration_tests.py
motd.txt
requirements_common.txt
requirements_python2.txt
requirements_python3.txt
run_integration_tests.sh
test_requirements.txt

README.md

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