ZMQ.jl is a Julia interface to ZeroMQ, The Intelligent Transport Layer.
Pkg.add("ZMQ")
(This installs its own copy of the ZMQ libraries from the ZMQBuilder repository.)
using ZMQ
ctx=Context()
s1=Socket(ctx, REP)
s2=Socket(ctx, REQ)
ZMQ.bind(s1, "tcp://*:5555")
ZMQ.connect(s2, "tcp://localhost:5555")
ZMQ.send(s2, Message("test request"))
msg = ZMQ.recv(s1)
out=convert(IOStream, msg)
seek(out,0)
#read out::MemIO as usual, eg. read(out,...) or takebuf_string(out)
#or, conveniently, use unsafe_string(msg) to retrieve a string
ZMQ.send(s1, Message("test response"))
ZMQ.close(s1)
ZMQ.close(s2)
ZMQ.close(ctx)
If you are using Windows and get an error Provider PackageManager failed to satisfy dependency zmq
, you may need to restart Julia and run Pkg.build("ZMQ")
again. See issue #69 for more details.