It has been several weeks in intensive development, and now Moxl (Movim XMPP Library) the new XMPP library that will replace Jaxl is merged into Movim’s development branch and will be released with the next version.
Why develop yet another XMPP library?
Example: The requirement to parse for a second time each packet received by Jaxl to extract informations while keeping the structure, the base parser “putting flat” all packet informations.
The Jaxl complexity was heaving performances and code size (almost 65% of Movim), causing serious delays on small machines moderately stressed. The last major defect was related to the integration with Movim: sessions.
For instance, interfacing Movim’s sessions with Jaxl’s relied on very dirty glue code that created a maze of callbacks and exceptions so that Movim could be synchronised with Jaxl’s status and vice versa.
Moxl cleans this all up
The Jabber class that previously glued Jaxl and Movim has disappeared altogether. The sessions system could be cleaned up and simplified further. We now only have a single session managed by Movim instead of two, which means that when the XMPP session is disconnected, so will the web session.
Moxl features a powerful events system called XEC (XMPP Events Controller) that lets it smartly route communication packages and thus simulate a stateful system. You can find XEC’s documentation online.
Moxl lets Movim connect to existing XMPP accounts
Thanks to Moxl, Movim can now connect to an existing XMPP account straight through. There is no need for a web-server side registration any more, and thus Movim does not store user account details, leaving this responsibility to the XMPP server and preventing data leaks. The project’s documentation is online and you can find the project’s code on Launchpad.
What of its support in Movim?
Testing of Moxl happens within Movim. Therefore the library is entirely supported by the social network only 2.5 weeks after the development started. Movim on Moxl has already reached the same feature level as Movim 0.5 but with a much cleaner and maintainable code. It is furthermore possible to connect to a large variety of accounts and to connect without first registering on the web interface.
Moxl give a boost to Movim and accelerate its development by simplifying the code and provide easier error management. This also benefits the user with more granular error messages to take better decisions. With Movim 0.5, when an XMPP error happened, Movim just skipped it, Jaxl didn’t provide error reports.
Porting Movim to the new library took only 2 weeks, thus it is realistic to expect a new release with only Moxl by the end of the year.