[zeromq-dev] .NET port

Martin Sustrik sustrik at 250bpm.com
Sat Aug 6 22:36:57 CEST 2011

Hi Fil,

> - Would this be done on 3.0 exclusively?

Depends on you. If you need to be interoperable with existing 0MQ/2.1 
applications, you better support 2.1 as well as 3.0. Otherwise, go for 3.0.

> - How would IPC work, would it be named pipes or shared memory? If the
> latter, what technique would be used (ring buffer et al.)?

I would start with named pipes. Once it's done -- which is not a trivial 
task -- you can experiment with shared memory. Note that even with 
shared memory you need some kind of notification mechanism, presumably 
named pipes, so the work on named pipes won't be lost.

> - Anyone here had experience with Disruptor - the relatively new high
> performance producer-consumer (Java). I have a dream about this combined
> with zmq.

I've read the Disruptor whitepaper and my feeling is that optimisations 
used by Disruptor are either already in 0MQ, or the use cases they 
address (such as multiple writers to a queue) don't exist in 0MQ. In any 
case, feel free to replace 0MQ queue (pipe_t class) by Disruptor and see 
what performance improvement you can get. There's no licensing problem 
as Apache2 project (Disruptor) can be used in GPL3 project (0MQ).

>  From what I've read there is a fundamental design issue of interacting
> with transports, being either aligned with Unix or Windows (IOCP). Is it
> possible to get the best of both worlds; to have zmq structured so the
> implementation design varies for these two platforms so you get optimal
> performance on each platform?

Hard to say in advance. You have to implement the thing to actually 
measure the performance impact.


More information about the zeromq-dev mailing list