1. 26
  1.  

  2. 6

    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

    1. 6

      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

      1. 1

        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.

        1. 1

          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.

    2. 3

      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.

      1. 1

        I stand corrected. ROUTER mode is implemented as:

        nn_socket(AF_SP_RAW, NN_REP);
        

        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.