The esotericbot package
Esotericbot is a sophisticated, lightweight IRC bot, written in Haskell.
Esotericbot launches sub-processes to respond to commands issued by users over IRC.
Why would you use esotericbot?
spoon@utensil:~/esotericbot$ ps e v
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
23433 pts/3 Sl+ 0:00 0 8228 84855 33476 1.6 lambdabot
15040 pts/5 S+ 0:00 0 2171 28804 3292 0.1 ./esotericbot
I'm not insinuating that lambdabot sucks in any way, ( lambdabot is most excellent ) however, my hope is that esotericbot could attain equal functionality through plugins, while maintaining its small memory footprint.
Esotericbot is small ( for Haskell :), designed to run on a server with limited memory - typically running at under 5mb of private memory.
* Advanced memory and time management options, utilizing POSIX resource management.
For example, the memory used by all child processes, can be limited - commands be queued until the memory usage has dropped.
* Privileged channel operator commands ( Currently, can be disabled and enabled by channel operators, to prevent abuse. )
* Easy to add new plugins. A C library is included to make writing new plugins/adapting programs to be plugins easy.
* Set up through a configuration file.
* Multiple channels.
* Lightweight, typically running at under 5mb of private memory.
* POSIX memory management, process forking, and chroot means that Esotericbot is POSIX only.
* Esotericbot is, due to the libraries and extensions used, restricted to being compiled by the Glorious Glasgow Haskell Compiler.
Note: esotericbot comes with several plugins which will be installed into your cabal-bin, and libraries installed into your cabal-lib. Check cabal-bin for 'brainfuck', 'unlambda' , 'malbolge', 'sk' and 'whirl'. These will need libplugin and libplugin++ from your cabal-lib to function correctly.
|Versions||0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6|
|Dependencies||attoparsec, base (>3 & <5), bytestring, containers (0.2.*), directory, fgl, mtl, network, stm, stream-fusion, tuple, unix|
|Author||John Morrice <email@example.com>|
|Maintainer||John Morrice <firstname.lastname@example.org>|
|Upload date||Tue Jun 23 14:32:13 UTC 2009|
|Build failure||ghc-6.10 (log)|