Prosodical Thoughts

News, announcements and thoughts from the Prosody IM team

Prosody 0.9.0 released

by The Prosody Team
Tags: release

Yes! Prosody 0.9.0 is here!

Over 1500 commits have been made by twelve people since 0.8, and even more have gone into third-party libraries that we have been contributing to such as LuaSocket, LuaSec and LuaEvent.


Our first big feature to announce is IPv6 support throughout. After releasing 0.8, this was by far our most voted-for issue in our tracker. Many thanks especially go to Florian Zeitz who worked on the bulk of IPv6 support in both Prosody and LuaSocket.

See our documentation for more information on Prosody’s IPv6 support.

Server-to-server certificate authentication

Although Prosody has long supported SSL/TLS encryption for server-to-server connections, it was not able to use the associated certificates for authentication purposes, instead falling back to the more traditional DNS-based dialback protocol.

Starting with Prosody 0.9, and with the appropriate version of LuaSec, certificate authentication is automatically used when possible. Furthermore, Prosody gives you full control over the security policy for communicating with remote domains.

Many thanks to Paul Aurich who did much of the work to make this possible in both Prosody and LuaSec.

More information can be found in our server-to-server security documentation.

HTTP server

Prosody has a built-in HTTP server, which was originally designed specifically for BOSH. However over time it has grown to be used for many other purposes, such as serving MUC room logs, status indicators, REST APIs and a web interface.

Therefore in 0.9 we have greatly improved our HTTP server internals and the API it exposes to modules. It now supports virtual hosts, which will make exposing services easier in multi-host environments.

Some configuration options have changed, so if you are using BOSH with a custom configuration, or any other HTTP modules, don’t forget to read our release notes for information on smoothly upgrading to 0.9.

Module developers can take a peek at our new API here: Prosody HTTP module API.


Of most interest to XMPP application developers, Prosody 0.9 comes bundled with an implementation of XEP-0060, mod_pubsub. XEP-0060 is a large specification, and we don’t yet support it all. If you’re missing a particular feature that you need, let us know, we’ll be building our pubsub support over the next couple of versions.

Other changes

There have been many other changes, too many to list them all here. Here are a few small examples:

  • MUC history length is configurable per-room
  • Modules can now dynamically extend the MUC configuration form
  • prosodyctl can now assist with generating certificate signing requests (CSRs) and self-signed certificates.
  • Another new prosodyctl command, ‘about’: report information about Prosody installations.


Head over to our downloads section, and don’t forget to check out our release notes if you are upgrading from a previous release.

Finally, we have to say thanks to our wonderful community. Whether you have contributed code, helped with testing, reported a bug, or told your friends about Prosody and XMPP, you’ve helped make this project and release happen.

Happy Jabbering, The Prosody Team


Prosody is a lightweight and flexible XMPP server designed with ease-of-use and extensibility in mind.

⚛️ Atom feed

Recent Posts