Install & Compatibility
Where this runs
tested against v3.12.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 18.3MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 1.7s · import 0.000s · 19MB
16MB installed
● package 16MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
ASGIApp
✓ from asgiref.typing import ASGIApp
✗ from asgiref.typing import ASGIApp
A basic ASGI application setup using asgiref and Channels, including routing and middleware.
import os
from asgiref.sync import AsyncToSync
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
from django.urls import path
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')
application = ProtocolTypeRouter({
'http': get_asgi_application(),
'websocket': AuthMiddlewareStack(
URLRouter([
path('ws/some_path/', your_consumer.as_asgi()),
])
),
})
Upgrade
Version history
3.12.1latest on PyPI · released Jul 14, 2026
Audit
Dependencies
typing-extensionsrequiredProvides backports of Python 3.5+ typing features for earlier versions