Django SocketIO (django-sio)
Socket.IO for Django, powered by Channels and compatible with the official Socket.IO clients.
📖 Documentation: django-sio.readthedocs.io 🐍 PyPI: pypi.org/project/django-sio/ 🚀 Demo project: django-sio-chat-demo
Code Coverage
Development Setup
Clone the repository and install dependencies using uv:
# Install dependencies
uv sync
# Editable install
uv pip install -e .
Building Documentation
This project uses sphinx.
uv run make html
See documentation in build/ directory.
Running Tests
Execute the test suite with:
uv run pytest -sq
uv run pytest -sq --durations=10 # To get 10 slowest tests
uv run pytest --cov=. --cov-report=html # To generate code coverage report
# To run js_client tests make sure you do `npm install` before
uv run pytest -vv -s tests/js_client/test_js_client_integration.py --run-js
# To run js_client tests till first failure
JS_BAIL=1 \
uv run pytest -vv -s tests/js_client/test_js_client_integration.py --run-js
# To run specific js_client tests. Alternatively use it.only() or to skip it.skip().
SIO_TRANSPORT=default JS_GREP="should forcefully close the session" \
uv run pytest -vv -s tests/js_client/test_js_client_integration.py --run-js
Running Linters and Formatters
uv run ruff format --check
uv run ruff format
uv run docformatter . --check
uv run docformatter --in-place .
uv run ruff check
npx eslint tests/js_client
npx eslint tests/js_client --fix
Running with tox
Run the full tox matrix:
uv run tox
List the tox matrix:
$ uv run tox -l
... # past support
py39-dj42
py310-dj42
py311-dj42
py312-dj42
py310-dj51
py311-dj51
py312-dj51
py313-dj51
py310-dj52
py311-dj52
py312-dj52
py313-dj52
py314-dj52
py312-dj60
py313-dj60
py314-dj60
py312-djmain
py313-djmain
py314-djmain
... # future support
qa
qa-js
# run the tests with python 3.14, on Django 5.2 and main branch with linting or code quality assurance.
$ uv run tox -e py314-dj52,py314-djmain,qa
Note that tox can also forward arguments to pytest. For example, forward the -sq or --run-js flag to pytest as such:
uv run tox -e py314-djmain -- -sq --run-js
Contributing
Contributions are welcome! Please open issues or pull requests to help improve the package.
Release
To create a release:
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
Metadata
Release files for django-sio 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django_sio-0.2.0.tar.gz | 54.5 kB | Without provenance | Details for django_sio-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| django_sio-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for django_sio-0.2.0-py3-none-any.whl |
Total release size: 87.1 kB
Release files / django_sio-0.2.0.tar.gz
| Download URL | django_sio-0.2.0.tar.gz |
|---|---|
| Size | 54.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a5b0c5677524fdf8723b8f253df1a930a80305ef08a692748634848e5e1fa25
|
|
BLAKE2b-256 checksum How to use checksums |
37d82729e6b0b47be4e4ec9e5cc58c65c8e7016dc4ae189f86be00004f3999f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / django_sio-0.2.0-py3-none-any.whl
| Download URL | django_sio-0.2.0-py3-none-any.whl |
|---|---|
| Size | 32.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b0bab7d28e252417a8743cdf027b1ccd785e740393a0bd61ef85b8a2754b817f
|
|
BLAKE2b-256 checksum How to use checksums |
a9e7cb6f83ae859124d57fe5082c9b78654dad43ac5041e318f7753196148d28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for django-sio 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.