gevent compatibility layer for pyzmq
Project description
Wrapper of pyzmq to make it compatible with gevent. ØMQ socket operations that would normally block the current thread will only block the current greenlet.
Inspired by Ben Ford’s work on ØMQ support in eventlet.
Requirements
Requires pyzmq>=2.1.0
Before version 2.1.0 (of both ØMQ and pyzmq) the underlying file descriptors that this library utilizes were not available.
Usage
Instead of importing zmq directly, do so in the following manner:
from gevent_zeromq import zmq
Any calls that would have blocked the current thread will now only block the current green thread.
About
This compatibility is accomplished by ensuring the nonblocking flag is set before any blocking operation and the ØMQ 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
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.
Source Distribution
File details
Details for the file gevent_zeromq-0.1.0.tar.gz
.
File metadata
- Download URL: gevent_zeromq-0.1.0.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a5490e5e43e2d867410bb1e08add1f792e0b44e4ab8735f572c098568a8d7bf |
|
MD5 | 34b89e0d2d319c845d175e2c05c9434a |
|
BLAKE2b-256 | 750e6df0b0d514aeb44d52345c5b643d738be8651bce6f23a693fcfc80e44dd1 |