Version 1.0 released

This is a feature and bugfix release. This is the most significant release for
the mosquitto project so far. It encompasses >20% of the total commits for
the project and has an increase in source tarball size of 95%, mostly down to
the new bundled tests and new man pages. It introduces lots of new features for
the broker and improves the API of the client libraries, although this does
mean that the libraries are incompatible with previous releases. I apologise
for this and hope you'll agree that the changes are worth it.

I've been overwhelmed with the amount of feedback that I've received recently,
thanks to everyone that has got in touch to let me know where something could
be improved. I'd particularly like to thank Nicholas Humfrey for setting me on
the continuous integration path.

On a slightly different note, my wife was expecting our first child two days
ago so it's quite likely I'll be less responsive to support requests for a
little while.

Significant changes

These are what I think are the exciting changes for this release.

SSL/TLS support across the board - the broker, client libraries and pub/sub
clients. This provides certificate based network encryption in a very
similar manner to SSL in a web browser where the client verifies that the
server is valid. It is also possible to use client certificates to
authenticate the clients with the server.

TLS-PSK support (not on Python). This is "pre-shared-key" network encryption
and represents a simpler encryption interface than certificate based
encryption which makes it much more suitable for embedded/constrained
devices.

The Python client library is now written in pure Python so is much easier to
use. It supports Python 2.6, 2.7 and 3.* (no SSL support for 2.6).

All client libraries have had their interface overhauled and should now be
much saner and straightforward to use.

The client libraries have thread support.

Passwords files for the broker are stored hashed and salted and a utility
for maintaining them has been provided.

It is now possible to write access and authentication plugins for the broker
for providing custom support for authentication against e.g. a SQL database.

Implementation of a good test suite which has lead to improved protocol
compliance amongst other bug fixes.

Masses of bug fixes.

Downloads

Source is available on the download page, the binary packages will follow as
soon as possible. Windows and Ubuntu packages are currently available, more to
follow.

The client libraries

Add struct mosquitto *mosq parameter for all callbacks in the client
library. This is a binary incompatible change so the soversion of the
libraries has been incremented. The new parameter should make it easier to
use callbacks in practice.

Add mosquitto_want_write() for use when using own select() loop with
mosquitto_socket().