ZeroMQ integration with asyncio.
Project description
asyncio (PEP 3156) support for ZeroMQ.
Documentation
RPC Example
Simple client-server RPC example
import asyncio
import aiozmq.rpc
class ServerHandler(aiozmq.rpc.AttrHandler):
@aiozmq.rpc.method
def remote_func(self, a:int, b:int) -> int:
return a + b
@asyncio.coroutine
def go():
server = yield from aiozmq.rpc.serve_rpc(
ServerHandler(), bind='tcp://127.0.0.1:5555')
client = yield from aiozmq.rpc.connect_rpc(
connect='tcp://127.0.0.1:5555')
ret = yield from client.call.remote_func(1, 2)
assert 3 == ret
server.close()
client.close()
asyncio.get_event_loop().run_until_complete(go())
Requirements
Python 3.3+
pyzmq 13.1+
asyncio or Python 3.4+
optional submodule aiozmq.rpc requires msgpack-python 0.4+
License
aiozmq is offered under the BSD license.
CHANGES
0.5.0 (XXXX-XX-XX)
Support zmq devices in aiozmq.rpc.serve_rpc()
Add loopless 0MQ transport
0.4.1 (2014-07-03)
Add exclude_log_exceptions parameter to rpc servers.
0.4.0 (2014-05-28)
Implement pause_reading/resume_reading methods in ZmqTransport.
0.3.0 (2014-05-17)
Add limited support for Windows.
Fix unstable test execution, change ZmqEventLoop to use global shared zmq.Context by default.
Process cancellation on rpc servers and clients.
0.2.0 (2014-04-18)
msg in msg_received now is a list, not tuple
Allow to send empty msg by trsansport.write()
Add benchmarks
Derive ServiceClosedError from aiozmq.rpc.Error, not Exception
Implement logging from remote calls at server side (log_exceptions parameter).
Optimize byte counting in ZmqTransport.
0.1.3 (2014-04-10)
Function default values are not passed to an annotaion. Add check for libzmq version (should be >= 3.0)
0.1.2 (2014-04-01)
Function default values are not passed to an annotaion.
0.1.1 (2014-03-31)
Rename plural module names to single ones.
0.1.0 (2014-03-30)
Implement ZmqEventLoop with create_zmq_connection method which operates on zmq transport and protocol.
Implement ZmqEventLoopPolicy.
Introduce ZmqTransport and ZmqProtocol.
Implement zmq.rpc with RPC, PUSHPULL and PUBSUB protocols.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.