[zeromq-dev] Getting started with ruby bindings

Martin Sustrik sustrik at 250bpm.com
Wed Apr 21 13:28:06 CEST 2010


Brian,

> So there may be a place for a pure-ruby implementation of zmq after all.

I would definitely try not to go that way. While the wire protocol is 
extremely simple, actual implementation of a messaging endpoint is 
pretty complex (managing many connections, queueing, fair queueing and 
load balancing etc.) Moreover, pure Ruby implementation is bound to be slow.

The main problem here (and that's a reoccurring issue) is the 0MQ 
sockets cannot be polled on because they aren't real file descriptors.

I can imagine a small wrapper library on top of 0MQ that would intercept 
the system BSD socket API and forward the calls either to OS (in case of 
OS file descriptors) or to 0MQ (in case of 0MQ sockets).

OFED's implementation of SDP does exactly the same thing, so it should 
be feasible.

The question is how would that work on Windows... In any case tcmalloc 
seems to be able to intercept malloc even on Windows so there should be 
some way.

Martin



More information about the zeromq-dev mailing list