anyone using AMP on top of ZeroMQ? e.g. on top of txZMQ?
in theory you could use use the AMP encoding for zmq messages. but zmq already implements message framing for you, so you have two redundant layers of framing...
but afaik the path and query etc have no such restrictions
hawkowl
they should be url escaped
teratorn
dpn`-: I think they would be redundant... zmq is message-based hence it must implement a framing protocol on top of whichever byte-stream transport you utilize. AMP implements it's own message (box) framing...
dpn`-
that could well be true - i'd have to look at rfc's to verify
teratorn
dpn`-: not that it would actually matter at all in practice, but im considering doing a version of AMP specifically for use on top of an already-framed "transport" like zmq, or perhaps something very very similiar to AMP but done with msgpack (MAMP?)
(MPAMP?)
i've seen zerorpc and it's basically a stupid version of AMP
exactly how stupid (or how awesome in for certain uses) I'm not sure yet...
I need an RPC thing on top of zmq that has AS3, JS and Python clients...
I know AMP already has AS3 and JS implementations of various quality and level of completeness... zerorpc lacks any existing AS3 code afaik, not sure about JS yet.
dpn`-
yeah I'd end up doing whatever each native queue engine uses for RPC tbh
surely AS3 could just use json?
hawkowl
teratorn: you could use wamp :D
teratorn
that's the problem.. zmq doesn't provide any RPC
it's just framed sockets of various shapes/sizes
hawkowl
(wamp over raw sockets is a thing too)
teratorn
supporting various topologies and messaging patterns
I would prefer something with an efficient binary encoding...
hawkowl
wamp has msgpack :D
teratorn
I don't know much about WAMP at this point in time.
dpn`-
to me it sounds like the redundancy is actually something you could easily wear until performance becomes an issue?
hawkowl
disclosure: i kinda work on it
but it's kinda cool
dpn`-
then you would have justification for digging further
hawkowl
and it supports js and twisted and asyncio and cpp and there's .net clients and stuff
teratorn
dpn`-: well performance *is* an issue which is why I'm replacing our really crapping ad-hoc AMF-based remoting stuff.
but yes, double framing is probably the least of my performance concerns.
dpn`-
so hawkowl as a matter of interest pre #7407 was everything forced to ascii?
hawkowl
dpn`-: i think fromBytes throws a fit if its not ascii
URI.fromBytes
dpn`-
teratorn, we use rabbit over zmq because of stuff like this :P
hawkowl
dpn`-: pre-that it wasnt forced but it shouldnt have worked
dpn`-
teratorn, but we care about validity more than performance
hawkowl, ok noted. these _are_ scraped urls, so we should probably stop being so lazy
or if I would even want it... these protocols are not so complicated that I can't implement them in under a day in AS3
hawkowl
teratorn: tell him there's an RFC
:P
teratorn
(approve of having AS3 call our network code in JS, when our network code is already in AS3)
hawkowl
teratorn: well the only benefit you get for picking up something like wamp is that then you get crossbar.io or something as your router which sits there and routes your crap to whatever you want
teratorn: wamp is mostly some dicts serialised down to json or msgpack
w/ well defined rpc and pubsub
teratorn
plz tell me you're not trying to sell me cloud
hawkowl
teratorn: DID YOU KNOW WE HAVE A CLOUD TOO
teratorn: lol no
teratorn: cb is FOSS
teratorn
this is a desktop app
hawkowl
wait what's it connecting to
teratorn
that just happens to use web crap
and is distributed in nature
hawkowl
teratorn: oh obviously you need a blockchain
teratorn
ie certain processing happens in different processes, perhaps on the same computer, perhaps not
hawkowl
teratorn: ah yeah, just json some things down a wire then
or msgpack if msgpack has an es3 impl?
msgpack is really nice
teratorn
it does, AS3
hawkowl
as3, right
yeah, msgpack is great
teratorn
well msgpack isn't an RPC and neither is JSON
i need a protocol for RPC on top of the encoding
hawkowl
oh well. hm
hawkowl sips tea
glyph
yeah we should do a JSON encoding of AMP
an official one
teratorn
hence the debate over AMP vs zerorpc vs whatever you guys tell me about in the next 5 minutes before I start thor dropping noobs
hawkowl
glyph: did you know
teratorn
glyph: and a msgpack one!
glyph
teratorn: I think lvh might have odne one
hawkowl
glyph: msgpack on cpython is slower than json on pypy
teratorn
glyph: good to know if true!
glyph
hawkowl: not surprising
hawkowl
so if you're cpu bound (which in our testing, crossbar is, because it's routing stuff and doing checks and things), makes a difference
pypy is hilariously fast
teratorn
we're mostly cpu bound I believe.
any heavy data can go in files on a shared filesystem.
hawkowl
teratorn: call up alex_gaynor, get pypy targeting as3