mirror of
https://github.com/django/daphne.git
synced 2026-01-06 00:09:02 +03:00
Autobahn is no longer maintained and adds unnecessary dependency weight. Twisted has had native WebSocket support since version 16.1.0. Key changes: - Replace autobahn.twisted.websocket imports with twisted.web.websocket - Adapt method signatures from autobahn API to Twisted API - Handle transport differences (Twisted uses WebSocketResource vs autobahn's direct protocol handoff) - Maintain ASGI WebSocket protocol compliance for accept/reject/subprotocols The implementation preserves existing functionality while removing the autobahn dependency. WebSocket handshake, message passing, connection lifecycle, and error handling all work as before. All existing tests pass.
82 lines
2.1 KiB
TOML
82 lines
2.1 KiB
TOML
[project]
|
|
name = "daphne"
|
|
dynamic = ["version"]
|
|
description = "Django ASGI (HTTP/WebSocket) server"
|
|
requires-python = ">=3.9"
|
|
authors = [
|
|
{ name = "Django Software Foundation", email = "foundation@djangoproject.com" },
|
|
]
|
|
|
|
license = { text = "BSD" }
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Environment :: Web Environment",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: BSD License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Internet :: WWW/HTTP",
|
|
]
|
|
|
|
dependencies = ["asgiref>=3.5.2,<4", "twisted[tls,websocket]>=22.4"]
|
|
|
|
[project.optional-dependencies]
|
|
tests = [
|
|
"django",
|
|
"hypothesis",
|
|
"pytest",
|
|
"pytest-asyncio",
|
|
"pytest-cov",
|
|
"black",
|
|
"tox",
|
|
"flake8",
|
|
"flake8-bugbear",
|
|
"mypy",
|
|
]
|
|
|
|
[project.urls]
|
|
homepage = "https://github.com/django/daphne"
|
|
documentation = "https://channels.readthedocs.io"
|
|
repository = "https://github.com/django/daphne.git"
|
|
changelog = "https://github.com/django/daphne/blob/main/CHANGELOG.txt"
|
|
issues = "https://github.com/django/daphne/issues"
|
|
|
|
[project.scripts]
|
|
daphne = "daphne.cli:CommandLineInterface.entrypoint"
|
|
|
|
[build-system]
|
|
requires = ["setuptools"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.setuptools]
|
|
package-dir = { daphne = "daphne", twisted = "daphne/twisted" }
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = { attr = "daphne.__version__" }
|
|
readme = { file = "README.rst", content-type = "text/x-rst" }
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
|
|
[tool.pytest]
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "strict"
|
|
filterwarnings = ["ignore::pytest.PytestDeprecationWarning"]
|
|
|
|
[tool.coverage.run]
|
|
omit = ["tests/*"]
|
|
concurrency = ["multiprocessing"]
|
|
|
|
[tool.coverage.report]
|
|
show_missing = "true"
|
|
skip_covered = "true"
|
|
|
|
[tool.coverage.html]
|
|
directory = "reports/coverage_html_report"
|