Django-based Message Broker for DASF
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_topiccommand, - 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.