Project is active

Last updated: 2016-09-16 03:48:56 UTC

Gambot is a modular, fully asynchronous, IRC bot framework. Extensions can be written in any language thanks to an API.

My experiments with IRC bots began in early 2010 with an instance of a ColdFusion Event Gateway that existed to report new forum posts in IRC for the now-defunct "experimental" fork of Battle for Wesnoth.

There were severe limitations in the underlying IRC Event Gateway driver. The first bot could only inhabit one channel and had access to a limited number of actual IRC commands. Frustrated, I eventually wrote my own "core" connection component in Perl that would receive messages and pass them to the ColdFusion parser over HTTP. This client-server architecture would persist throughout the history of the project.

A short time later, I migrated to Linux and maintenance of a ColdFusion server at that time was rather obnoxious (exacerbated by my freshness to Linux). Seeking a more standard environment, I ported the message parser to PHP.

The purpose of always having a web-server involved was the ease of asynchronous processing and the ability to deploy parser updates on the fly. The parser script would always be freshly interpreted by the web-server for each newly received message. This was an extremely inefficient way to accomplish those goals, however, and so I began work on recreating the bot in pure Perl.

Today, the asynchronous processing and live updates are accomplished via IPC::Open2 with non-blocking I/O.

Project homepage