esotericbot

Esotericbot is a sophisticated, lightweight IRC bot.

http://www.killersmurf.com/projects/esotericbot

Latest on Hackage:0.0.6

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed and maintained by John Morrice

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?

For lambdabot-4.2.2.1:

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 pts5 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.

Features:

  • 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.

  • Multi-threaded

  • Lightweight, typically running at under 5mb of private memory.

Cons:

  • 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.