package Net::Bummskraut; use warnings; use strict; =head1 NAME Net::Bummskraut - A chat client framework =head1 VERSION Version 0.01 =cut our $VERSION = '0.01'; our %SCOPES; =head1 SYNOPSIS perldoc bummskraut vim bin/bummskraut vim bin/bummskraut_server =cut =head1 DESCRIPTION This Perl modul provides a client and server and utility modules for the chat client framework called 'Bummskraut'. Mostly all IO in these modules is non-blocking and uses the AnyEvent module to be independend of a specific event loop. The central idea of this framework is that communication only happens beween IDs. An ID is represented as URI. So if you are connected to irc.freenode.net as 'elmex' your ID is: irc:~elmex@irc.freenode.net And if you want to join a channel you needs to E the ID of that channel: irc:*test@irc.freenode.net (This is the channel #test on irc.freenote.net). Your ID is of course different for each protocol and depends on which destination ID you want to reach. People who sit on a channel are represented as "sub" IDs. For a user perspective documentation please have a look at the POD of the frontend in C and the backend C. =head1 MODULES The distribution consists of following modules: =head2 Net::Bummskraut::Connection This module implements the low-level handling of messages on the wire. =head2 Net::Bummskraut::Listener This module implements a more or less generic client listener. =head2 Net::Bummskraut::Event This module implements a simple event framework. =head2 Net::Bummskraut::Protocol This module documents and implements Protocol handling. =head2 Net::Bummskraut::Server This module implements the bummskraut server, it handles communication with the bummskraut frontend, which is implemented in C. The server acts as client to other chat protocols, such as IRC or XMPP. The actual implementations of these other protocol interfaces is done in 'schemes'. For each supported URI scheme of an ID there is a scheme module. For more documentation please have a look at L. Following schemes exist already: =over 4 =item B This module implements a dummy scheme, which acts as base class for all other schemes. This module also documents the API for schemes. See also L. =item B The config scheme, this scheme just handles configuration of the backend which can be done in the frontend by simple chatting to it. =item B This scheme implements an interface to the IRC protcol. It uses Net::IRC3 for the actual communication. =back =head2 Net::Bummskraut::Util This module only has some utility functions. =head2 Net::Bummskraut::CursesChatWindow This module implements a curses chat interface which is used by the frontend. =head1 AUTHOR Robin Redeker, C<< >> =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc Net::Bummskraut You can also look for information at: =over 4 =item * AnnoCPAN: Annotated CPAN documentation L =item * CPAN Ratings L =item * RT: CPAN's request tracker L =item * Search CPAN L =back =head1 ACKNOWLEDGEMENTS =head1 COPYRIGHT & LICENSE Copyright 2007 Robin Redeker, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1; # End of Net::Bummskraut