"Incredible!" breathed Arthur, "the people ... ! The things ... !"
"The things," said Ford Prefect quietly, "are also people."
"The people ..." resumed Arthur, "the ... other people ..."

- Douglas Adams, The Restaurant at the End of the Universe

This page lists projects that are using POE. IRC bots get their own section at the end because there are so many of them. Please see CPAN for [more projects using POE].

If you have a project you'd like to include here, follow the links in the page footer to edit this page.

Everything Else

A powerful Perl Application Server using POE, SOAP, SSL and XML. Providing client interfaces for n-tier serving, Object proxying, Task scheduling and more. Author: Kaare Rasmussen

Christopher A. Petro's second POE server lets people play chess against each other online.

[Coloured Petri Nets]
The project's aim is to provide tools to write and simulate coloured Petri nets in Perl. This includes the core simulation engine, wrappers for environments (just POE at the moment) and a GUI frontend.

[Distributed Monkey Project]
The Distributed Monkey Project is an effort to crack Shakespeare using a massively parallel cloud of distributed monkey and typewriter simulators.

etreed is an open-source HTTP queue, designed to provide fair-queuing for sites serving large files with limited bandwidth. Its developers wanted to provide command-line client access to etreed servers but found that lynx didn't support the features they relied on. The etreed-client was written as a minimal command-line HTTP client: it speaks just enough HTTP and HTML to be a useful etreed client. In theory, etreed's client could be extended into a fully armed and operational web browser.

Glancing: An application to allow ultra-simple, non-verbal communication amongst groups of friends online. It's a desktop application that you use with a group of other people. It lets you "glance" at them in idle moments, and it gives all of you an indication of the activity of glancing going on.

[Global anime series leech]
Parse lots of webpages for torrent links of the TV series you like and retrieve the ones you are missing.

Googlematic lets you search Google through your Internet Messaging client. Well, maybe not YOUR IM client in particular, but it would if you used AOL IM or MSN Messenger. In not so much words, it's a Google <-> IM gateway.

Iaijutsu is Leslie Michael Orchard's content management system. It's similar to Zope in scope, but it's written in Perl. He needed an integrated FTP server so he could edit content with emacs' ange-ftp mode, so he wrote one in Perl. His FTP component separates the protocol from the filesystem representation, allowing him to edit Iaijutsu content records as if they were files.

InterMezzo is a high-availability distributed filesystem. Its cache manager is based on POE.

[JAAS - Just Another Application Server]
JAAS is Philip Gwyn's attempt at a general application server architecture. His work is mostly with the web, however, and JAAS is therefore tailored mainly to serve web applications.

Loghog was designed to take a proactive stance on snort output. It supports multilog processing and is optimized for high volume traffic and responds to events by conducting actions such as email and blocking. Loghog has been tested successfully under harsh conditions.

Meme eater. It's a multi-protocol bot that passively collects URLs from conversations in several fora at once. It understands IRC, some MUDs, and e-mail. It accepts new URLs via javascript bookmarklets (this lets people one-click submit new URLs directly from their browsers). It automatically fetches page titles and META information (descriptions and keywords), and it periodically verifies the links in its database (no stale links). Memephage is an open SourceForge project. Please contact <troc at pobox.com> if you'd like to join in.

NodeWatch is a network monitoring tool. It polls a set of nodes and reacts to connectivity changes by logging to syslog and executing user defined commands. It supports a range of event suppression capabilities through its understanding of topology, scheduled downtime windows, and redundancy.

[POE Interface]
POE Interface is Philip Gwyn's experimental project for generating POE interfaces from XML. The idea is in the early tinkering stages, and he's requested comments on the design.

POE::Knee is Jos Boumans' time sliced pony race. It uses POE to run multiple threads (ponies) to simulate a Horse Race. Very good to bet on with coworkers! View the homepage here: [japh.nu]

POEnis is a method for spanning software across multiple hosts. kinda like MPI but sane.

PoeMud simply is a MUD which uses POE for its communications framework. Douglas Couch is the project leader for PoeMud as well as the maintainer of POE's Win32 distribution.

An open source MUD, with a MySQL backend, allowing on the fly changes to game content. The user interface is akin to that of MajorMUD, but with more features (such as in-game account editing, in-game e-mail maintenance, and other nifty tools). This project is merely a shell, providing those without perl knowledge the ability to create content. Comes with default content (Realm of Lore), content SDK (web utility and documentation), web template (displays details about the realm), automated XML creation (enable by adding to your crontab; see docs), and optional broadcasting (requires XML creation; alerts my server of new XML, which triggers a download, and subsequently advertises details about your server; see docs).

Poing is a multi-host ICMP pinger with a colorful running history of several hosts' response histories. It also logs host up/down events to a file.

Casey West has implemented that venerable classic video game, Pong, as a Curses application. It uses POE to manage multiple moving objects at once.

A suite of perl modules which provide a generic framework for algorithmic composition using POE.

Ptirc is Michael W. Peterson's IRC client. It uses POE::Component::IRC to talk to IRC networks.

PXR is the (POE Enabled)Perl XML Router. Shamelessly adapted code from PoCo::Jabber (just the Filter and even then altered it significantly) PXR is experimenting in ideas of providing high availability routing and proxying for connected Jabber(tm) entities. Eventually meant to replace s2s(server-to-server) communications by acting as central hubs for Jabber servers

rateplay is a Perl script using the POE framework, a Gtk GUI and the musicus (xmms-based) MP3 player. rateplay plays MP3s in two different phases: The training phase and the play phase. During training, it randomly plays songs from a collection and asks the user for ratings on two criteria: The energize and the schmoop level. It stores these ratings persistently in an SQLite database (automatic setup, no fiddling required). During the play phase, it lets the user select acceptable energize and schmoop levels and randomly plays songs matching these criteria. See the URL for more about energize and schmoop levels.

[ReProxy - The Regular Expression Proxy]
ReProxy is a regular-expression based proxy server. It uses an Apache-like configuration file that defines one or more proxies (a single instance of ReProxy can handle multiple servers). Each proxy has a source and target host and port combination. It will then listen on it's source port for connections and pass all packets transmitted or recieved on that port to the target host.

Christopher A. Petro has begun work on a client/server version of the popular Spellcast game for X. Unfortunately, it was never finished, and now the project is collecting dust. Please contact the author if you are interested in a client/server version of Spellcast and/or have time to assist Christopher in making it happen.

Rocco Caputo and Pete Sergeant have begun a Curses version of the xfrisk client. However, it's taking a long time to come to fruition (mostly because of a lack of time). Please contact <troc at pobox.com> if you're interested in joining this project.

[TN3270RG - TN3270 Resource Gateway]
TN3270RG is a TCP/IP TN3270 gateway that dynamically assigns resources to a connection from a pool of available addresses. Features include an easy to use web interface for management and a PostgreSQL database backend. The program is designed to be fast and stable and should recover gracefully from most errors including unexpected disconnections and database errors.

todokeru is an FTP daemon that Tom Woolridge was writing a while ago. It seems that he (and it) have disappeared, though. Torvald Riegel has written an FTP server component, so all hope is not lost.

[trickster streaming server]
Trickster Streaming Server is a real-time (!= on-demand) media streaming server by Tatsuhiko Miyagawa and his friends. It uses file based UNIX manner to handle song queues, so extensions can be made easily.

webPaste is a small script that acts as front-end to the paste bot family http://sourceforge.net/projects/pastebot/ mainly for pasting data that is allready stored in a file.

[Visterm - Visual Terminal User Interface]
Visterm is a Perl module for visual terminal interfaces. These are the standard terminal/status/entry interfaces you see in text mode IRC and similar clients. Visterm includes scrollback, full input editing, and uses POE for multitasking.

Xws is a multi-player crossword puzzle / chat server by Rocco Caputo.

IRC Agents/Bots

Acro18 is an IRC acronym game bot written with POE::Component::IRC. Until I find a host for the bot, it will be online whenever I (Android18) am on EFnet in #acro18. Stop in and play sometime, the game is quite addicting :).

Amethys is a port of Infobot to POE. It's not a complete replacement of Infobot, and it's not being maintained, but it provides a flexible multi-network bot core. [The author's description] says more.

Bot::CPAN allows individuals on IRC to query the CPAN in a great number of different ways. Bot::CPAN will also automatically inform channels of new uploads to the CPAN.

Buttler is a program that allows you to track and request files that are offered publicly on irc networks via xdcc offer bots. Buttler is written in POE::Component::IRC and perl-gtk. Buttler will connect to over 50 irc networks and join over offer 200 channels. [screenshot].

[CzthOS IRC 'bot]
Now has a good deal more features - very flexible multichannel management; ability to do lookups in the #c++ 'calc' database (local snapshot; import with calcdb.pl); ability to specify various permissions, including mapping nick!user@host to a canonical name, for auto-opping or permission to use the op command. Ability to use the Bible verse quoting via a proxy channel to keep noise down (search there as usual then use %quote to forward). Plus lots more.

Casey West has written a tiny IRC bot that controls his whole-house sound system. djbot's IRC interface is implemented with POE::Component::IRC. It plays mp3s with POE::Component::MPG123.

Fishtank is a POE based IRC bot (No, come back here, it's really different!). It does or will do all sorts of things that other bots don't do, like fire-and-forget data and configuration storage, total configurabilty from IRC including downloading and installing new modules, strict UI standards, clean handling of state changes, modular expandability, permission levels, DCC and background shelling support, automated backups of all bot state data, and lots of other things. (See, we told you it was different.)

FserveSpider is an IRC 'bot based on POE::Component::IRC. It traverses and maps the contents of IRC file servers.

This is an IRC bot I wrote in Perl using the POE::Component::IRC module. It's a pretty simple bot but it does some neat things. It lives as Mort (or Binky) on #mesh on irc.openprojects.net, loved and feared by all... or something like that. Take a look at him if you want, maybe you'll decide to adopt him into your channel :)

Geckobot is Kevin Lenzo's next generation infobot. It runs stand-alone, and it uses POE::Component::IRC to talk to IRC networks.

Ofnibot (Ofni = Info spelled backwards) is meant to provide that same core functionality without the bloat of the Infobot code. Ofnibot uses the modern POE::Component::IRC module to interface with IRC and, more importantly, it uses commands and files that are fully compatible with the original Infobot. The entire program comes in at just over 300 lines of Perl.

Molly is a small, simple IRC bot that is used for intra-office communication. She will handle lunch menus, stock quotes, take polls and stuff like that.

Pastebot is a successful experiment in integrating IRC bots and web services. On the web side, it accepts text through a simple form. The IRC side announces new "pastes" to appropriate channels, letting their members share in the joy of large code listings (or whatever) without them clogging the channel. Pastebot is an open SourceForge project. Please contact <troc at pobox.com> if you'd like to join in.

Perl-fu is infobot's <http://www.infobot.org> competition. Though due to its plugin architecture among other features, it's hardly a fair comparison.

PipSqueek is a modular, fully configurable IRC automaton ('bot') written with POE::Component::IRC. In contrast to infobots or eggdrops, PipSqueek's functions lean towards having fun with a group of IRC friends.

Poeb is a basic channel maintenance bot.

Risteau is a stand-alone DCC- and NOTIFY-based IRC fserve.

Thespians is a program which will act out plays on IRC. It manages each actor as a separate connection, so be sure not to run this on a major IRC network.

[TriviaHam - Quiz IRC Bot]
A while ago i saw someone in an irc channel making quizzes to people using a Mirc script. So i thought a Perl Bot could do the same job, better. I grabbed POE::Component::IRC and started coding something: follows what i came up with.

WebFServe is an IRC File Server with a web interface.

Zebot is a perl IRC robot that emulates a dog, among other things. It includes pluggable authentication, the ability to manage operators on a channel, and a mailbox. Other modules are being worked on: nickserv and chanserv services, file serving, and fserve spidering.