Skip to main content

A generic interface wrapping multiple backends to provide a consistent pubsub API.

Project description

https://travis-ci.org/smarzola/anypubsub.png?branch=master https://coveralls.io/repos/github/smarzola/anypubsub/badge.svg?branch=master

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

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

anypubsub-0.6.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

anypubsub-0.6-py2.py3-none-any.whl (11.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file anypubsub-0.6.tar.gz.

File metadata

  • Download URL: anypubsub-0.6.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for anypubsub-0.6.tar.gz
Algorithm Hash digest
SHA256 57d48ba8932ae57ec91b386725a0acb23b208228eabd85c5409d8e7bb3c64412
MD5 2a86f1f5060b3c6e5ff884a5c0f2e286
BLAKE2b-256 ecc31c384b30ddfb551de1ca915bc3b5630e4bfe5aeb3838b36199edb95f2e2f

See more details on using hashes here.

File details

Details for the file anypubsub-0.6-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for anypubsub-0.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7f6e0ade707f1c7b40c08e25a7b0048cd3099e54b4d4a39d73429f000951ada4
MD5 d1692fe97b4df6059dbfc591e8f9d043
BLAKE2b-256 99efa33f2f2e417e861f0516a71f187118aa875eb97e262d23ccac722c2b0a7f

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