Contains various reference ASGI implementations, including:
- A base channel layer,
asgiref.base_layer
- An in-memory channel layer,
asgiref.inmemory
- WSGI-to-ASGI and ASGI-to-WSGI adapters, in
asgiref.wsgi
Provides an optional template to start ASGI channel layers from with the two exceptions you need provided and all API functions stubbed out.
Also comes with logic for doing per-channel capacities using channel names and
globbing; use self.get_capacity
and pass the arguments through to the base
__init__
if you want to use it.
Simply instantiate asgiref.inmemory.ChannelLayer
, or use the pre-made
asgiref.inmemory.channel_layer
for easy use. Implements the group
extension, and is designed to support running multiple ASGI programs
in separate threads within one process (the channel layer is threadsafe).
These are not yet complete and should not be used.
To use the benchmarker, once asgiref
is installed, run the asgiref_benchmark
program with the path to a channel layer instance (and an optional number of messages
to test) to get throughput statistics:
$ asgiref_benchmark -n 2000 myproject.asgi:channel_layer ... Received: 2000/2000 (100.0%) Latency mean: 0.0011 median: 0.0010 10%: 0.0008 90%: 0.0014 Send throughput: 1146.0/s Receive throughput: 1146.0/s
All Channels projects currently support Python 2.7, 3.4 and 3.5.
Please refer to the main Channels contributing docs. That also contains advice on how to set up the development environment and run the tests.
To report security issues, please contact [email protected]. For GPG signatures and more security process information, see https://docs.djangoproject.com/en/dev/internals/security/.
To report bugs or request new features, please open a new GitHub issue.
This repository is part of the Channels project. For the shepherd and maintenance team, please see the main Channels readme.