Skip to main content

anypubsub

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

Release files for anypubsub 0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for anypubsub 0.6
File Size Uploaded
anypubsub-0.6.tar.gz 6.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for anypubsub 0.6
File Interpreter ABI Platform
anypubsub-0.6-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 17.8 kB

Release files / anypubsub-0.6.tar.gz

Download URL anypubsub-0.6.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
57d48ba8932ae57ec91b386725a0acb23b208228eabd85c5409d8e7bb3c64412
BLAKE2b-256 checksum
How to use checksums
ecc31c384b30ddfb551de1ca915bc3b5630e4bfe5aeb3838b36199edb95f2e2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / anypubsub-0.6-py2.py3-none-any.whl

Download URL anypubsub-0.6-py2.py3-none-any.whl
Size 11.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
7f6e0ade707f1c7b40c08e25a7b0048cd3099e54b4d4a39d73429f000951ada4
BLAKE2b-256 checksum
How to use checksums
99efa33f2f2e417e861f0516a71f187118aa875eb97e262d23ccac722c2b0a7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.6 This release

2 release files

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page