If I remember correctly, this is the creator of 0mq, who was unsatisfied with 0mq and wanted to implement something similar using C instead of C++, right?
Yeah—after writing 0mq he wrote something called “Crossroads I/O” and then moved to nanomsg of late. He has a post [0] citing that he had somewhat less familiarity with C++ and this lead to design and development weaknesses with 0mq. Nanomsg definitely seems aimed to be the “true 0mq” written in regard to Sustrik’s strengths.
I wrote about 1/3rd of a Haskell binding for fun a few months ago [1] and learned a lot about the library. It was just a beta API at the time—though 1.0 has been released since, I believe—but it struck me as very nice, clean C code. It’s something of a challenge to lift C conventions into a space like Haskell, but I found the API’s clarity around failure modes and resource allocation to be a joy. Nanomsg feels like a simple unix tool while ZMQ felt like an application.
I’m confused, do you mean the library version is 1.0, or that the API is versioned separately, and is at 1.0? Because the home page still says “WARNING: nanomsg is still in alpha stage!”, and the version number on the latest source tarball is 0.2-alpha.
Ooh, perhaps it was 0.1 not 1.0. I haven’t tracked it carefully in a few months. My main point was that there was a major API release shortly after I started writing that library which claimed a improvement in API stability.
I am missing ROUTER mode and control over resources consumed by peers (idle peers consuming descriptors, unlimited subscriptions being an invitation for memory DoS). With those solved it could be a really nice platform for distributed Internet applications.
If I remember correctly, this is the creator of 0mq, who was unsatisfied with 0mq and wanted to implement something similar using C instead of C++, right?
EDIT: looks like it: http://nanomsg.org/documentation-zeromq.html
Yeah—after writing 0mq he wrote something called “Crossroads I/O” and then moved to nanomsg of late. He has a post [0] citing that he had somewhat less familiarity with C++ and this lead to design and development weaknesses with 0mq. Nanomsg definitely seems aimed to be the “true 0mq” written in regard to Sustrik’s strengths.
I wrote about 1/3rd of a Haskell binding for fun a few months ago [1] and learned a lot about the library. It was just a beta API at the time—though 1.0 has been released since, I believe—but it struck me as very nice, clean C code. It’s something of a challenge to lift C conventions into a space like Haskell, but I found the API’s clarity around failure modes and resource allocation to be a joy. Nanomsg feels like a simple unix tool while ZMQ felt like an application.
[0] http://250bpm.com/blog:4
[1] https://github.com/tel/hs-nanomsg
I’m confused, do you mean the library version is 1.0, or that the API is versioned separately, and is at 1.0? Because the home page still says “WARNING: nanomsg is still in alpha stage!”, and the version number on the latest source tarball is 0.2-alpha.
Ooh, perhaps it was 0.1 not 1.0. I haven’t tracked it carefully in a few months. My main point was that there was a major API release shortly after I started writing that library which claimed a improvement in API stability.
I am missing ROUTER mode and control over resources consumed by peers (idle peers consuming descriptors, unlimited subscriptions being an invitation for memory DoS). With those solved it could be a really nice platform for distributed Internet applications.
I stand corrected. ROUTER mode is implemented as:
On the other hand, Sustrik haven’t touched the codebase for 3 months. Hopefully he will find some time to work on it soon-ish.