Skip to main content

gevent compatibility layer for pyzmq

Project description

Wrapper of pyzmq to make it compatible with gevent. 0MQ socket operations that would normally block the current thread will only block the current greenlet.

Inspired by Ben Ford’s work on 0MQ support in eventlet.

Requirements

Requires pyzmq>=2.1.0

Before version 2.1.0 (of both 0MQ and pyzmq) the underlying file descriptors that this library utilizes were not available.

Usage

Instead of importing zmq directly do a:

from gevent_zeromq import zmq

And use as normal.

About

This compatibility is accomplished by ensuring the nonblocking flag is set before any blocking operation and the 0MQ file descriptor is polled internally to trigger needed events.

Will build with cython if available. In my simple nonscientific test this resulted in an almost 50% speedup in a local 1-1 PUB SUB sending of 100,000 1K messages in a single tight loop.

There are plans to further the integration with both gevent and pyzmq via cython for speed.

License

See LICENSE (New BSD)

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

gevent_zeromq-0.0.3.tar.gz (5.4 kB view details)

Uploaded Source

File details

Details for the file gevent_zeromq-0.0.3.tar.gz.

File metadata

File hashes

Hashes for gevent_zeromq-0.0.3.tar.gz
Algorithm Hash digest
SHA256 65371b2e42ebdf588c3a91af26471964bd3dec2fc3784117ffe6138afe73b1d8
MD5 9f03f805a1637ff512aebec4781a1414
BLAKE2b-256 e5546f41ae0511c8e6568e4f70f71b92f503a462e1e99f49b872200ac36c8ccc

See more details on using hashes here.

Supported by

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