Skip to main content
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

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

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 2Python 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.

Release history Release notifications | RSS feed

This release

0.6 This release

2 files

0.5

1 file

0.4

1 file

0.3

1 file

0.2

1 file

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page