It's amazing how Carl solved all the same problems at around the same time 0MQ was designed
Also, a lot of stuff that was traditionally missing from 0MQ is in R/S, such as encryption and authentication
On the other hand, both fail to provide the first needs most people have: an HTTP transport that is able to traverse firewalls is missing from both
Further, R/S manages to cripple its added value of encryption by only providing cloaking in the free version, and requiring paid versions for real encryption that you can't even order anymore
R/S is much nicer and quicker to program because it's all REBOL, but 0MQ's point is the reverse: that it's language neutral, which is also very powerful
They target two entirely different problems. Hard to compare them. And R/S does have the CGI option.
I see a big overlap between them
LNS (R/S) is high-level dialected req-rep (not always RPC) over, theoretcially, any transport and is point-to-point client-server. 0MQ is mid-level sockets with semantics. Mid-level meaning framed messages, multiple connection points, brokering/proxying, buffering, etc. LNS also has the concept of an admin interface and file sharing, but those are incomplete AFAIK.
I like both, but they are very different to me. I LOVE the idea of a completely native REBOL solution, but 0MQ opens the door to interacting with other systems.
And we should be able to use 0MQ as just another transport for LNS, right?
Yes, 0MQ is leaning towards transports, while R/S is leaning towards defining message formats. In the middle, they overlap
Looking at R/S in terms of 0MQ, it's not completely clear what R/S offers, but it looks like it's more like 0MQ dealer/router than request/reply
0MQ's flexible other topologies are not offered by R/S, so it's a matter of viewpoint which one would be considered more high level
When you need them in R/S, you'd have to implement them yourself on top of R/S's sort-of dealer/router
How do you see R/S as dealer-router?
It seems to be able to overlap multiple requests, which is essential for performance, and also means it needs to maintain internal message queues
However, it doesn't automatically generate node IDs like 0MQ, so it's less convenient in that
Ah, OK. And since there is no concept of distributing work, you would have to build all that yourself behind the server.