AnyEvent::XMPP - An implementation of the XMPP Protocol in Perl
See also: AnyEvent-XMPP Repository
Tags: AnyEvent::XMPP, Perl, XMPP
What Is It?
AnyEvent::XMPP is an implementation of XMPP in Perl, formerly know under the name Net::XMPP2, it allows you to easily write Clients and Components. In comparsion to Net::XMPP it offers a event based API and is independent of an event loop with AnyEvent.
I could of course copy the contents of the main manpage, but as that one might change from release to release just follow this link and read the 'cover' manpage: AnyEvent::XMPP
Which Extensions Are Supported?
Currently there are not as many extensions supported as I would like, but my time is limited. 'Support' here means: AnyEvent::XMPP offers abstractions for the XEPs which generally help you to handle them.
Following XEPs are implemented:
- XEP-0004 - Data Forms
- XEP-0030 - Service Discovery
- XEP-0054 - vcard-temp (XMPP vCards)
- XEP-0066 - Out of Band Data
- XEP-0077 - In-Band Registration
- XEP-0078 - Non-SASL Authentication
- XEP-0082 - XMPP Date and Time Profiles
- XEP-0086 - Error Condition Mappings
- XEP-0091 - Delayed Delivery (legacy)
- XEP-0092 - Software Version
- XEP-0114 - Jabber Component Protocol
- XEP-0153 - vCard-Based Avatars
- XEP-0199 - XMPP Ping
- XEP-0203 - Delayed Delivery (new)
Download / Distribution
The module is uploaded to CPAN: AnyEvent::XMPP at CPAN.
Development source code
For the impatient here is the Git repository I'm regularily pushing my changes to:AnyEvent::XMPP Git Repository
New API / Deprecation Warning / Maintainership
In late 2009 I have implemented a new more generic API and rewrote most of the module. Unfortunately time was cut short and I was not able to release a new version. That means that the current version on CPAN is more or less deprecated and I won't maintain it anymore. But I also don't have the time to upload the new version which I would rather maintain. The new module, which can be found in the "connection_ref" branch in the Git repository, has been in production since 2009 and works really well. I invested a lot of time and effort to fix bugs in the rewrite and not introduce new ones. But as my time is currently a very scarce resource and I don't have much need for the module currently I can't work on it anymore.
That means, that I would love if a new maintainer would maintain the module. One that needs it more regularily. Of course it would be great if the new maintainer would adopt the new version from the repository, but any kind of maintainership would be fine I think.