Skip to main content

Django-based Message Broker for DASF

CI Code coverage Docs Latest Release

Code style: black Imports: isort PEP8 Checked with mypy

A Django-based message broker implementing the messaging protocol of the Data Analytics Software Framework (DASF), inspired by Apache Pulsar.

The broker connects clients (such as a web frontend or a python script) with backend modules that run the requested functions. All of them talk to the broker via websockets, so that backend modules can run anywhere and come and go at any time. It features

  • topics with fine-grained permissions, managed in the Django admin and with the dasf_topic command,
  • subscriptions in the style of Apache Pulsar (exclusive, failover, shared, spread) with acknowledgements, redelivery of missed messages and a configurable storage of messages,
  • short-lived tokens that allow backend modules to act on behalf of the user who sent a request,
  • request quotas per user and topic,
  • pings and a status endpoint to monitor backend modules,
  • an optional web frontend that renders a page with forms, progress reports and results for every topic, and
  • a docker-based deployment template.

Deployment

The recommended way to run the broker is the dasf-broker-docker-template. It generates a docker compose setup with daphne, postgres, redis and nginx. See the deployment docs for how to use it.

Installation

To add the broker to your own Django project, install this package in a dedicated python environment via

python -m venv venv
source venv/bin/activate
pip install "dasf-broker-django[drf,jobs]"

and follow the installation instructions in the docs. To use this in a development setup, clone the source code from gitlab, start the development server and make your changes:

git clone https://codebase.helmholtz.cloud/dasf/dasf-broker-django
cd dasf-broker-django
python -m venv venv
source venv/bin/activate
make dev-install
make build-static  # download the files of the frontend

You find the full documentation, including a getting started guide, at https://dasf.readthedocs.io/projects/message-broker/en/latest/.

Technical note

This package has been generated from the template https://codebase.helmholtz.cloud/hcdc/software-templates/django-app-template.git.

See the template repository for instructions on how to update the skeleton for this package.

License information

Copyright © 2022-2025 Helmholtz-Zentrum hereon GmbH

Code files in this repository are licensed under the EUPL-1.2, if not stated otherwise in the file.

Documentation files in this repository are licensed under CC-BY-4.0, if not stated otherwise in the file.

Supplementary and configuration files in this repository are licensed under CC0-1.0, if not stated otherwise in the file.

Please check the header of the individual files for more detailed information.

License management

License management is handled with reuse. If you have any questions on this, please have a look into the contributing guide or contact the maintainers of dasf-broker-django.

Metadata

Release files for dasf-broker-django 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dasf-broker-django 1.0.0
File Size Uploaded Provenance Actions
dasf_broker_django-1.0.0.tar.gz 1.3 MB Without provenance Details for dasf_broker_django-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dasf-broker-django 1.0.0
File Interpreter ABI Platform Actions
dasf_broker_django-1.0.0-py3-none-any.whl Python 3 none any Details for dasf_broker_django-1.0.0-py3-none-any.whl

Total release size: 2.7 MB

Release files / dasf_broker_django-1.0.0.tar.gz

Download URL dasf_broker_django-1.0.0.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
1ed9c5aa50d5a43c9e26bc93aeb3f85e5c6a829ee197ef26c1e3e944a8f2c28e
BLAKE2b-256 checksum
How to use checksums
4810d650707c936438d474ea9a4cd62b02d79018e2bacf0c7e072bf8caa90148
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16

Release files / dasf_broker_django-1.0.0-py3-none-any.whl

Download URL dasf_broker_django-1.0.0-py3-none-any.whl
Size 1.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
27f402437243f0c236c3fb3d74e5801ab1773274e5fc801eb21264255bf1f893
BLAKE2b-256 checksum
How to use checksums
fbb0e6e35a42de2852ef1b1d64bfa86dd6a3d0659c78297cce7b8ac3f71812bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.16

Security for dasf-broker-django 1.0.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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page