Skip to main content

rivulet: A Redis-Based Message Broker for Python

Latest Travis CI build status Documentation Status

Documentation: Read the docs.

Quickstart

$ pip install rivulet

Notes

Limitations

  • No balanced consumers (yet)

  • Without the proper management tools (see todos), managing messages is painful raw redis.

Todos

  • Extend testing

    • Connection drops

    • Parallel producers, consumers (stressing the locking setup)

  • Provies management functionality

    • list channels, delete channels

    • count, list, update subscribers

    • count, list, prune messages

Implementation details

Data model:

  1. rvl:lock:<channel_id>: Used to maintain locks across multi-step redis calls (in particular when sending a message using a server-issued, monotonically increasing message seq id).

  2. rvl:id:<channel_id>: A counter providing sequence ids for messages in channel channel_id

  3. rvl:msg:<channel_id>: ZSET that maps a packed JSON string to the message sed id (allowing range queries on messages over seq ids).

  4. rvl:channel:<channel_id>: ZSET that maps a client id to the last message id in channel channel_id seen by the clinet

  5. rvl:index:<client_id>: ZSET that maps the channel_id to the last message id seen by client client_id

Metadata

Release files for rivulet 0.2.0

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

Source distribution (sdist)

Source distribution for rivulet 0.2.0
File Size Uploaded Provenance
rivulet-0.2.0.tar.gz 5.6 kB Without provenance Details

Release files / rivulet-0.2.0.tar.gz

Download URL rivulet-0.2.0.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
2514977d1844b337263e080dbf14219118dc183e9c816fb01dafc970cf8caf31
BLAKE2b-256 checksum
How to use checksums
64cdfc2327d7c4a097d5adf19e20c78af130dab48fc857f7d5e00913a807c119
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.0 CPython/3.6.3

Security for rivulet 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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