[zeromq-dev] ZRE interoperability

Arnaud Loonstra arnaud at sphaero.org
Mon Jun 30 13:29:57 CEST 2014

On 06/29/2014 01:47 PM, Chris Laws wrote:
> Hi list,
> I've just spent some time trailing the interoperability of the C, Go and
> Python ZRE implementations. I encountered some issues with the Python
> version - which I later determined are due to it being a v1
> implementation. I did not initially realize that there were 20/ZRE and
> 36/ZRE versions.
> When running C, Go and Python chat examples, my Pyre node would crash
> upon receipt of 17 byte length identities (a v2 feature). Apart from
> checking the sender identity length in the HELLO is there any way to
> detect that a peer is v1 or v2?

I'm still working on the v2 implementation. I've got a major change 
planned but it's still in my local repo. I haven't been doing any mixing 
of Python and C nodes recently. But I could really use the feedback from 
that. Once I have the v2 Pyre version ready I'll be doing test with Zyre 
> The czmq and Go based ZRE libs define a version (e.g. zyre's
> ZRE_MSG_VERSION in zre_msg.h) but do not seem to use it anywhere.
> The ZRE beacons have a version, v1, but this does not actually inform
> the receiver of the peers TCP version which may be v2. ZRE seems to be a
> combination of the UDP and TCP protocols so should this in fact report
> v2 for ZRE implementations using v2 of the protocol (36/ZRE)?
> Establishing a simple interoperability test (such as the simple chat
> example) would be a great way to ensure each implementation's protocol
> compliance and serve as a useful tool for testing and refining the
> protocol specification.

Yes that would be really helpful. Any suggestions?



w: http://www.sphaero.org
t: http://twitter.com/sphaero
g: http://github.com/sphaero
i: freenode: sphaero_z25

More information about the zeromq-dev mailing list