I’ve released v0.9 of nanomsg. This release has many bug fixes, and a
number of significant improvements. Here are some major highlights:
* CMake is used for all platforms now. (autoconf machinery is left in
place, but note: THIS IS THE LAST RELEASE OF NANOMSG THAT WILL SUPPORT
AUTOCONF — ALL SUPPORT FILES FOR AUTOCONF WILL BE REMOVED BEFORE THE NEXT
* A formal statistics API replaces the statistics socket and printing. See
* Documentation is formatted by default if asciidoctor is found during
configuration. This includes both man pages and HTML for local browsing /
convenience. The new output is more attractive, and more functional. (See
http://nanomsg.org/v0.9/nanomsg.7.html for an example.)
* nn_term’s semantics are somewhat different now; it now blocks until all
sockets are closed and resources are released, making it far safer for use
* The tcpmux functionality is removed. Please see the nn_ws(7) transport
for alternative approaches.
* The nn_ws(7) transport has had numerous fixes; we expect it will be
promoted from Experimental to main-stream status in the next release.
(Notably, it now protects against certain remote attacks, and will
reconnect on failure.)
* We are formally abandoning all attempts to support Windows prior to
Windows Vista. There are newer APIs (like ConditionVariables) that are
missing from Windows XP and older, and supporting the older releases is
just not practical with our limited resources. (We intend to make a number
of further improvements and refinements that will make further use of some
of these newer APIs.)
* Numerous bugs have been squashed.
We believe this is the most robust and stable version of libnanomsg yet.
We’re not done squashing bugs, but at this point the product is so much
better than the last release that we felt it important to release a new
build. This is also the first release with multiplatform CMake support,
and with major changes to the websocket infrastructure, and we would like
to vet those changes prior to 1.0.
Its somewhat likely that there will be at least one more release before
1.0, as we continue to work towards squashing bugs.
We highly recommend all libnanomsg users upgrade at their earliest
As always, please let us know (preferably by filing an issue) if something
doesn’t work right or you have problems.
PS: While the API has had some incompatible changes (loss of tcpmux, etc.),
the wire protocol for existing transports has not changed since v0.5.
Users running versions before v0.5 may notice that surveyor and respondents
do not interoperate with newer releases including 0.9. No other wire
protocol changes have been made in a long long time.