Skip to main content

juggernaut

Dead simple Python library that connects to a juggernaut via redis. It also provides a very basic roster implementation that can be used as a daemon process to manage online users.

Basic usage

How to send a message to all subscribers of a channel:

from juggernaut import Juggernaut
jug = Juggernaut()
jug.publish('channel', {'message': 'Hello World!'})

Connection Events

Juggernaut also allows you to subscribe to events (new subscription, unsubscribe event) so that you can respond to users going online and offline:

from juggernaut import Juggernaut
jug = Juggernaut()
for event, data in jug.subscribe_listen():
    if event == 'subscribe':
        ...
    elif event == 'unsubscribe':
        ...

Since this is quite common this library also implements a Roster that can group multiple connections to the same user. For grouping this it uses a key in the meta part of the message. The default is user_id in the meta object.

Example usage:

from juggernaut import Juggernaut, RedisRoster
jug = Juggernaut()
roster = RedisRoster(jug)
roster.run()

By default it keeps the number of online users in redis so that you can use the roster class to see if users are online:

>>> roster.get_online_users()
[42, 23]
>>> roster.is_user_online(42)
True
>>> roster.is_user_online(99)
False

If you want to respond to users signing in and out you need to override the on_signed_in and on_signed_out methods:

class MyRoster(RedisRoster):
    def on_signed_in(self, user_id):
        print 'User signed in', user_id
    def on_signed_out(self, user_id):
        print 'User signed out', user_id

You can for instance use juggernaut to broadcast that to other users that signed in.

copyright:
  1. 2011 by Armin Ronacher.

license:

BSD, see LICENSE for more details.

Release files for juggernaut 0.2

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

Source distribution (sdist)

Source distribution for juggernaut 0.2
File Size Uploaded
juggernaut-0.2.tar.gz 3.7 kB Details

Release files / juggernaut-0.2.tar.gz

Download URL juggernaut-0.2.tar.gz
Size 3.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4686cd4701279e01027a01fc9890dd52eb219450c10f961f8aaf8bf1f6bd9684
BLAKE2b-256 checksum
How to use checksums
793f6cd76096170ce0b6fb520bca2f11f42c06cd39c4db10e38e24526bbffd59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2 This release

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