@hackage esotericbot0.0.6

Esotericbot is a sophisticated, lightweight IRC bot.

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.