On 22/02/13 16:37, Schmurfy wrote:
I understand your concern but honestly the few times I looked at the zeromq source code it gave me headaches
:)The story behind it is that back when we've developed ZeroMQ, I had to take quite a lot of orthogonal factors into account: It should work with any underlying transport protocol, whether unicast, multicast, reliable, unreliable etc. It should work with different messaging patterns. Connect/bind should be fully symmetrical. It should be extremely fast. It should be fully portable. It should play well with all the language bindings application threading models and CPU architectures. To be frank, I am still quite surprised I've managed to address all those issues at the same time.
That being said, some aspects were not even taken into account in order to keep the rest [barely] doable. One of these aspects that were left out was clean, pluggable internal APIs.
I did not looked at nanomsg source code much yet but since having an easier code to contribute to was one of your goal I imagine it far better than zmq ;)
I've tried to keep it as simple as possible. It would be great if you could look at the API to see whether there are any traces of headache remaining. If so, let's simplify the API even further.
Martin