[nanomsg] Re: Interested in using nanomsg

  • From: Martin Sustrik <sustrik@xxxxxxxxxx>
  • To: nanomsg@xxxxxxxxxxxxx
  • Date: Fri, 20 Sep 2013 16:27:26 +0200

Hi Jeff,

I'm just looking into nanomsg and considering using it in my product and
wanted to get some expert advice before proceeding.  If we proceed, I
(my company) would probably become a contributor.  I notice that it is
still considered alpha which gives me some reservations.  Can some
please advise me on the overall stability of the project and which parts
are working/stable vs. not quite there yet?

My product is an automated microscope system running on Windows 7 x64.
  We have need for local interprocess communication currently (to
replace some non-standard, quirky in-house stuff) and we are planning to
expand to a network based system with multiple units communicating with
a central operator console.

Your main problem is inter-process communication on Windows platform.

Short answer is: The "ipc" transport doesn't work on Windows platform and you have to use TCP loopback connections instead ("tcp://127.0.0.1:5555" and such).

Long answer requires some historical background.

At the time I was devising ZeroMQ I've used BSD socket API to internally handle the underlying connections. The problem with that is that Windows IPC mechanism (NamedPipes) has no BSD socket API. All it has is IOCP API. Thus, there isn't and never will be native NamedPipes support in ZeroMQ.

Thus, one goal I had when starting nanomsg project was to be able to use IOCP to handle underlying connections. And so it does. It uses IOCP to handle TCP connections, for example. However, there's a second step still missing -- implementing IPC transport for Windows in such a way that it uses NamedPipes.

Hope this helps you to decide,
Martin


Other related posts: