After that, you can implement your stuff in 0MQ, AMQP, nanomsg, or whatever else. I fully expect nanomsg and 0MQ to compete with each other on Github over the next 5 years or so, and I personally won't take sides.
For me, I use the manual to design programs I then write in Rust, a lot of it with no explicit message passing at all. (REQ-REP and PUSH PULL become simple function calls, sometimes mediated through thread spawning, and sometimes not, for example.)
The 0MQ manual is (indeed) excellent, but it seems like a design whitepaper. It essentially describes what are known as the scalability protocols. As you say, it's independent of the implementation, i.e.: the library.
My confusion largely stems from a presentation I watched [0] in which it was implied that 0MQ suffered from a few design issues, and had therefore been forked. It seems like the library was rewritten in the meantime, however, so perhaps these points are no longer relevant.
I suppose I'm looking for a bit of clarity as to why the fork occurred in the first place.
``For ZeroMQ, our stated mission was "Fastest. Messaging. Ever." This is a nice, and nearly impossible answer to a problem we could all agree on: namely, the slow, bloated technology available at that time. However, my co-founder Martin and I had conflicting goals. He wanted to build the best software possible, while I wanted to build the largest community possible. As the user base grew, his dramatic changes, which broke existing applications, caused increasing pain.
``In that case, we were able to make everyone happy (Martin went off to build a new library called "Nano").''
Whence comes the impression that nanomsg is inactive?
Because two 'main' maintainers so far abandoned it quite publicly, maybe someone picked it up afterwards.
The mangos project seems to be alive and well, in any case.
1. that post is from Feb 8, 2016
2. nanomsg 1.0 was released on June 10, 2016
After nanomsg 1.0 release, recent activity on github includes:
8 days ago -- fixes #828 Add logical connections to UDP RFC
9 days ago -- fixes #827 nanomsg zerotier mapping rfc errors
11 days ago -- fixes #825 Extra tests in pipe.c gdamore committed 11 days ago
15 days ago -- fixes #800 accept4 not implemented on all systems
15 days ago -- fixes #783 WS transport - not connectable from Firefox
16 days ago -- fixes #821 NN_WS_HANDSHAKE_CRLF is silly
And etc.
Since then the project looks to be fairly healthy.
On a related note, using jupyter[1], salt[2], circus[3] and building fruits have been a real pleasure too.
And lastly, a bit of info on how 0MQ and nanomsg differ[4].
[0]http://zeromq.org/ [1]http://jupyter.org/ [2]https://saltstack.com/ [3]https://github.com/circus-tent [4]http://hintjens.com/blog:112
On a related note, using nnpy [1] and mangos [0] have been a real pleasure.
And lastly, a bit of info on how 0MQ and nanomsg differ [3].
[0] http://nanomsg.org/ [1] https://github.com/nanomsg/nnpy [2] https://github.com/go-mangos/mangos [3] http://nanomsg.org/documentation-zeromq.html