> On 30 Jan 2015, at 17:58, Drew Crawford <drew@xxxxxxxxxxxxxxxxxx> wrote: > > This is probably as good of a time as any to announce that I’ve started work > seriously on a third nanomsg re-implementation, that will sit beside nanomsg > and mangos as a third implementation of the protocols. A goal of my > re-implementation is to leverage the new socket architecture I posted to this > list a few months ago, that is difficult to achieve in core for various > reasons. A second goal is to fix a bunch of longstanding minor gripes that > are hard to do in the existing codebase. Hey, this is excellent news. It is also a good chance to bring up a question from an “insider at the outside” (I have followed ZeroMQ and nanomsg closely, and bounced off ideas with Martin, but it’s been a long time since I have done anything with any of them, or contributed to any of the projects). So, I am wondering what is the essence of a nanomsg implementation, and if having a good definition for this would be of help in our documentation and in helping newcomers understand what we do. Perhaps answering this question would lead to an architectural document and, from there, to a set of module documents, one per conceptual piece in nanomsg. I would love to contribute to that (yes, I am volunteering). Of course, the obvious answer “the essence of nanomsg is captured in the RFC” is both correct and useless… I am wondering more along the lines of: 1. What layers do we have in an implementation of nanomsg? 2. How do these layers relate to each other? What are the interfaces between them? 3. What have we learned from all the (two so far) different implementations? What are best practices for a nanomsg architecture? And so on. I am sure it would have helped me understand nanomsg much more easily, had I had such descriptions / diagrams / documents. And I don’t feel I know enough about nanomsg to be able to produce these documents on my own. Cheers, Gonzalo Diethelm