(backend-reference)= # Backend Reference django-prodserver supports multiple production-ready server backends for WSGI/ASGI applications and background workers. Each backend is configured using the `PRODUCTION_PROCESSES` setting in your Django settings file. ## Available Backends ### Web Servers | Backend | Type | Best For | | ------------------------------------------ | ---- | ------------------------------------ | | {ref}`Gunicorn ` | WSGI | Traditional Django, Linux production | | {ref}`Waitress ` | WSGI | Windows, pure Python | | {ref}`Granian WSGI ` | WSGI | High performance (Rust) | | {ref}`Uvicorn ASGI ` | ASGI | Async Django, WebSockets | | {ref}`Uvicorn WSGI ` | WSGI | Traditional with Uvicorn perf | | {ref}`Granian ASGI ` | ASGI | High-perf async (Rust) | ### Background Workers Worker backends live under `django_prodserver.backends.workers` and are started with the `worker` management command (`python manage.py worker `). | Backend | Best For | | -------------------------------------------- | ------------------------------------ | | {ref}`Celery Worker ` | Distributed tasks, complex workflows | | {ref}`Celery Beat ` | Scheduled/periodic tasks | | {ref}`Celery Flower ` | Monitoring/admin web UI for Celery | | {ref}`Django Tasks ` | Simple tasks, no dependencies | | {ref}`Django-Q2 ` | ORM-backed, admin interface | Web servers are started with the `server` command (`python manage.py server `). ## Quick Comparison | Backend | Async | Windows | External Deps | | ------------ | ----- | ------- | -------------- | | Gunicorn | No | Limited | None | | Waitress | No | Yes | None | | Granian | Both | Yes | None | | Uvicorn | Yes | Yes | None | | Celery | Yes | Yes | Redis/RabbitMQ | | Django Tasks | Yes | Yes | None | | Django-Q2 | Yes | Yes | None | ## ARGS Translation All backends convert the `ARGS` dict to CLI arguments: ```python "ARGS": {"bind": "0.0.0.0:8000", "workers": "4"} # becomes: --bind=0.0.0.0:8000 --workers=4 ``` See individual backend pages for specific ARGS options.