[jdev] Net::XMPP2 0.01 Released

Robin Redeker elmex at x-paste.de
Thu Jul 5 15:01:09 CDT 2007


I've released the first version of Net::XMPP2 a Perl module for XMPP.


It offers a non-blocking API and multiple levels of abstraction
from a simple XML stream up to a multi-account client class.

For non-blocking it uses AnyEvent, a framework for multiple event loops
like Event, Gtk2 or Tk.

I wrote Net::XMPP2 as there was no XMPP module for Perl which allowed out
of the box non-blocking usage with AnyEvent and also because I didn't really
like the API of Net::XMPP (just a personal matter of taste).

Here is a simple example that connects to the account 'net_xmpp2 at jabber.org'
and sends a message to me 'elmex at jabber.org', and prints all incoming messages:

   use strict;
   use utf8;
   use Event;
   use AnyEvent;
   use Net::XMPP2::Client;

   my $j = AnyEvent->condvar;
   my $cl = Net::XMPP2::Client->new;
   $cl->add_account ('net_xmpp2 at jabber.org', 'test');
   $cl->reg_cb (
      connected => sub {
         $cl->send_message (
            "Hi! I'm too stupid to adjust examples!" => 'elmex at jabber.org'
      message => sub {
         my ($cl, $acc, $msg) = @_;
         print "message from: " . $msg->from . ": " . $msg->any_body . "\n";


There are still some _missing_ features in Net::XMPP2 such as:

   - in-band-registration isn't yet fully implemented and doesn't work yet
   - iq-auth isn't implemented but will come, even thought that it's deprecated
   - lots of XEPs that are quite nice to have
     (eg. Entity capabilities, ...)
   - MUC
   (for more look in the TODO file that comes with Net::XMPP2 Version 0.01 :-)

The version 0.01 also doesn't come with many examples, which is one of the main
things I'm going to fix until next release, along with in-band-registration and

"Regular" usage should already be mostly stable as I'm already using it in my
own personal (yet unreleased) chat client (which I use daily) and already found
many bugs.

If anyone is interested in using this module: feel free to contact me via mail,
Jabber or IRC and ask questions and report bugs (patches are welcome to ease my
workload a bit :)


More information about the JDev mailing list