On Aug 30, 2013 9:21 PM, "Paul Colomiets" <paul@xxxxxxxxxxxxxx> wrote: > > Hi, > > I'm exited to announce first release of nanocat, the command-line > interface for the nanomsg. > > http://github.com/insollo/nanocat > > Basic features: > * Supports all socket types and protocols supported by nanomsg > * Can send static data specified on the command-line or from file > * Can send messages/requests at a given interval > * Small and self-contained, no dependencies except libc and nanomsg > (and cmake for building) > > It tested in linux for now only, but should work on any posix system. > Windows should support is trivial to implement, but I'll probably do > it later. > > I really think that it must be included to the nanomsg codebase for > the following reasons: I do agree. > > 1. It's first thing to play with to discover how patterns work > > 2. It's super useful tool for debugging and automation testing, so > should be on the machine of every developer > > 3. It would help to submit bug reports. Currently bug report should > contain both client and server code usually. But one of the sides may > be replaced by nanocat invocation. > > 4. It would be useful to add `--debug` argument to nanocat which would > print some internals of nanomsg (e.g. accepting/dropping connection, > protocol mismatch...), for which there is no (an never would be) an > API. It is very useful tool. (We use strace all the time but that is > more complex to use and not cross-platform). > > 5. It may be used to test nanomsg itself. I'm not sure about this one, > but I've found 8 bugs in nanomsg while testing nanocat (will recheck > and file issues for each later) > > A similar example is a Curl library. Which maintains single source for > libcurl and curl command-line utility, but is usually split into three > binary packages "libcurl", "libcurl-dev" and "curl". > > The discussing points of the nanocat itself are: > > 1. It currently doesn't echo anything by default. Should it? Which > format is preferred? > > 2. Should it install symlinks for each socket type by default? I would > say it should, because, writing: > > nn_push -l1234 -Dhello > > is much easier than writing: > > nanocat --push --connect tcp://127.0.0.1:1234 -Dhello > > But maybe there are reasons for not doing this? I'd make it optional. > > Any thoughts? > > -- > Paul >