A gevent based python client for NSQ.
Project description
A gevent based python client for NSQ distributed messaging platform.
Features include:
Free software: BSD license
Documentation: https://gnsq.readthedocs.org
Battle tested on billions and billions of messages </sagan>
Based on gevent for fast concurrent networking
Fast and flexible signals with Blinker
Automatic nsqlookupd discovery and back-off
Support for TLS, DEFLATE, and Snappy
Full HTTP clients for both nsqd and nsqlookupd
Installation
At the command line:
$ easy_install gnsq
Or even better, if you have virtualenvwrapper installed:
$ mkvirtualenv gnsq $ pip install gnsq
Currently there is support for Python 2.7+, Python 3.4+ and PyPy.
Usage
First make sure nsq is installed and running. Next create a producer and publish some messages to your topic:
import gnsq producer = gnsq.Producer('localhost:4150') producer.start() producer.publish('topic', 'hello gevent!') producer.publish('topic', 'hello nsq!')
Then create a Consumer to consume messages from your topic:
consumer = gnsq.Consumer('topic', 'channel', 'localhost:4150') @consumer.on_message.connect def handler(consumer, message): print 'got message:', message.body consumer.start()
Compatibility
For NSQ 1.0 and later, use the major version 1 (1.x.y) of gnsq.
For NSQ 0.3.8 and earlier, use the major version 0 (0.x.y) of the library.
The recommended way to set your requirements in your setup.py or requirements.txt is:
# NSQ 1.x.y gnsq>=1.0.0 # NSQ 0.x.y gnsq<1.0.0
Dependencies
Optional snappy support depends on the python-snappy package which in turn depends on libsnappy:
# Debian $ sudo apt-get install libsnappy-dev # Or OS X $ brew install snappy # And then install python-snappy $ pip install python-snappy
Contributing
Feedback, issues, and contributions are always gratefully welcomed. See the contributing guide for details on how to help and setup a development environment.
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.