Skip to main content

ZeroMQ integration with asyncio.

Project description

asyncio (PEP 3156) support for ZeroMQ.

https://travis-ci.org/aio-libs/aiozmq.svg?branch=master

Documentation

See http://aiozmq.readthedocs.org

RPC Example

Simple client-server RPC example:

import asyncio
import aiozmq
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.set_event_loop_policy(aiozmq.ZmqEventLoopPolicy())
asyncio.get_event_loop().run_until_complete(go())

Requirements

License

aiozmq is offered under the BSD license.

CHANGES

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiozmq-0.3.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

aiozmq-0.3.0-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file aiozmq-0.3.0.tar.gz.

File metadata

  • Download URL: aiozmq-0.3.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aiozmq-0.3.0.tar.gz
Algorithm Hash digest
SHA256 76b574b582ed6d5771c7e8a56e548d1371778abf14e335c4214bed986c01b616
MD5 b661a0625792105efed92d843de751a4
BLAKE2b-256 65a965a676cfea2534de298905ac1b5e9ec22ccc4ea2a8951c9db92d2fc54301

See more details on using hashes here.

File details

Details for the file aiozmq-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aiozmq-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c6c7b23309bd3098c6fe329bde7a34dcd454f04dd9fee9ef52bbbf84569f9357
MD5 df0e9afc72292e0db1fd0a1d7b703be6
BLAKE2b-256 9e27f5063bc62d777a152a8a4e7abc5aaf3d8bdad99b059113d6b239c5b75585

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page