Metadata-Version: 1.1
Name: anypubsub
Version: 0.4
Summary: A generic interface wrapping multiple backends to provide a consistent pubsub API.
Home-page: http://github.com/simock85/anypubsub
Author: Simone Marzola
Author-email: marzolasimone@gmail.com
License: UNKNOWN
Description: anypubsub
        =========
        
        .. image:: https://travis-ci.org/kuldat/anypubsub.png?branch=master
           :target: https://travis-ci.org/kuldat/anypubsub
        
        .. image:: https://coveralls.io/repos/kuldat/anypubsub/badge.png
          :target: https://coveralls.io/r/kuldat/anypubsub
        
        
        A generic interface wrapping multiple backends to provide a consistent pubsub API.
        
        
        Usage
        ------
        
        Create a pubsub object::
        
            from anypubsub import create_pubsub
            pubsub = create_pubsub('memory')
        
        or create a pubsub object from settings::
        
            from anypubsub import create_pubsub_from_settings
            pubsub = create_pubsub_from_settings({'anypubsub.backend': 'memory'}, prefix='anypubsub.')
        
        Subscribe to a channel::
        
            subscriber = pubsub.subscribe('a_channel')
        
        you can also subscribe to multiple channels::
        
            subscriber = pubsub.subscribe('a_channel', 'b_channel')
        
        the subscriber is an iterator object that returns the next published message at each loop increment, and blocks until
        next message is published.
        
        Publish a message to a channel::
        
            pubsub.publish('a_channel', 'hello world!')
        
            message = next(subscriber)
            assert message == 'hello world!'
        
        Supported backends
        ---------------------
        
        * memory
        * redis
        * mongodb
        * amqp (tested with rabbitmq)
        
        Backend specific optional settings
        -----------------------------------
        
        redis::
        
            host: hostname or full redis url, default: localhost
            port: default 6379
            db: default 0
            max_connections: connection pool max connections
            connection_pool: an already created redis-py ConnectionPool
        
        mongodb::
        
            host: hostname or full mongodb url
            port: mongodb port
            max-pool-size: connection pool max connections
            client: an already created pymongo MongoClient
            database: database used to store messages, default anypubsub
            collection: collection used to store messages, default anyps_messages
            collection_size: messages collection size in bytes, default 10MB
        
Keywords: pubsub pub/sub redis mongodb
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
