I've rewritten the API documentation for the C library using the NaturalDocs
format. This covers the whole C library and so should give enough information
for anybody using the C++ or Python wrappers as well.

Yuvraaj Kelkar got in touch to say he's packaged up mosquitto and the client
libraries for Maemo. If you want to use MQTT on your Maemo device then take a
look at the details on http://talk.maemo.org/showthread.php?t=69604

Dale Lane has written an enormous blog post [Using MQTT in Android Mobile
Applications in which he talks about a lot of the points you are likely to want
to consider if you're writing MQTT applications for Android. There's lots of
useful information and he even includes a complete source code
implementation.

This is a features release. It is probably the most significant change for
mosquitto so far.

The important change is the removal of the sqlite dependency, along with the
associated pcre and sqlite3-pcre dependencies. This results in better
performance both in terms of messages handled per second and memory usage.
Optional support for importing existing persistent databases in sqlite3 format
is provided, with the option compiled in by default. This will be set to not be
compiled by default in 0.10 and then removed in 0.11.

This release also provides support for the recently updated MQTT v3.1 spec -
most notably offering username/password authentication support. The client
library and clients have full v3.1 support. The broker is fully compatible with
v3.1, but doesn't provide any mechanism for controlling username/password
control. This will come in 0.10.

One goal of mosquitto is to be a drop in replacement for the IBM rsmb broker.
Another goal is to do more than rsmb :) I'm still working on the first goal,
but this release helps with the second as mosquitto now has IPv6 support, which
isn't supported in rsmb.

A detailed list of changes is given below:

Client and message data is now stored in memory with custom routines rather
than a sqlite database. This removes the dependencies on sqlite, pcre and
sqlite3-pcre. It also means that the persistent database format has had to
be reimplemented in a custom format. Optional support for importing old
sqlite databases is provided.

Added IPv6 support for mosquitto and the clients.

Provide username and password support for the clients and client libraries.
This is part of the new MQTT v3.1 spec.

The broker supports the username and password connection flags, but will not
do anything with the username and password.

Python callback functions now optionally take an extra argument which will
return the user object passed to the Mosquitto() constructor, or the calling
python object itself if nothing was given to Mosquitto().

Remove the mosquitto command line option -i interface.

Remove the mosquitto.conf "interface" variable.

Add support for the listener config variable (replaces the interface
variable)

Add support for the bind_address config variable.

Change the port config variable behaviour to match that of rsmb (applies to
the default listener only, can be given just once).

Don't send client will if it is disconnected for exceeding its keepalive
timer.

Fix client library unsubscribe function incorrectly sending a SUBSCRIBE
command when it should be UNSUBSCRIBE.

Fix max_inflight_messages and max_queued_messages operation. These
parameters now apply only to QoS 1 and 2 messages and are used regardless of
the client connection state.

mosquitto.conf now installed to /etc/mosquitto/mosquitto.conf instead of
/etc/mosquitto.conf. The /etc/mosquitto/ directory will be used for password
and access control files in the future.

Give the compile time option of using 32-bit integers for the database IDs
instead of 64-bit integers. This is useful where htobe64()/be64toh() are not
available or for embedded systems for example.

The DUP bit is now set correctly when resending PUBREL messages.

A port to Windows native has been partially completed. This currently drops
a number of features, including the ability to change configuration
parameters and persistent storage.

See the download page for the update. Debian and Ubuntu users should note
that the package libmosquitto0-python has been renamed python-mosquitto to
comply with Debian naming policies. The Debian packages aren't yet ready.

Starting with version 0.9, I plan on getting mosquitto packaged in the major
Linux distributions. By this I mean Debian, Fedora, openSUSE and Ubuntu. This
is my understanding of the current state of play of those distributions. Feel
free to correct me!

Debian is currently in freeze for the Squeeze release. Mosquitto will have
to go into Squeeze+1, although it can still be uploaded to Unstable.

Fedora 14 has just been released, Fedora 15 will have feature freeze on the
8th of February.

openSUSE 11.4 will have feature freeze at the start of December.

Ubuntu 11.04 has its Debian import freeze on the 30th of December and
feature freeze on 24th of February.

The plan is therefore to release 0.9 around the 14th of November and aim to be
packaged for Debian unstable before 30th of December and openSUSE before the
start of December, with packaging for Fedora 15 coming at some point later. If
packaging for Debian unstable isn't possible before the Ubuntu import freeze,
then package for Ubuntu separately.

If you can help out with the packaging process for any of the above, I'd love
to hear from you. If your distribution isn't included and you'd like it to be,
get in touch as well and we'll see what's possible.

Finally, this won't stop me producing Ubuntu PPA or openSUSE build service
packaged binaries for those that prefer to stay at the cutting
edge.