Welcome to uzmq’s documentation!¶
uzmq¶
libuv interface for ZeroMQ for your Python programs.
With uzmq you can use zmq sockets with the libuv event loop binding proposed by the pyuv library

Features¶
- Simple interface to zeromq with the libuv event loop
- ZMQPoll handle: Poll handle
- ZMQ handle: ZMQ handle
Note
uzmq source code is hosted on Github
Example of usage¶
Example of an echo server using a Poll handle:
import pyuv
import zmq
import uzmq
loop = pyuv.Loop.default_loop()
ctx = zmq.Context()
s = ctx.socket(zmq.REP)
s.bind('tcp://127.0.0.1:5555')
def rep_handler(handle, events, errors):
# We don't know how many recv's we can do?
msg = s.recv()
# No guarantee that we can do the send. We need a way of putting the
# send in the event loop.
s.send(msg)
poll = uzmq.ZMQPoll(loop, s)
poll.start(pyuv.UV_READABLE, rep_handler)
loop.run()
The same but using a ZMQ handle:
import pyuv
import zmq
import uzmq
loop = pyuv.Loop.default_loop()
ctx = zmq.Context()
s = ctx.socket(zmq.REP)
s.bind('tcp://127.0.0.1:5555')
stream = uzmq.ZMQ(loop, s)
def echo(handle, msg, err):
print(msg[0])
stream.write_multipart(msg)
stream.start_read(echo)
loop.run()
Contents: