This release is a pre-release and may not be stable for production use.
StreamFlow
The StreamFlow framework is a container-native Workflow Management System (WMS) written in Python 3. It has been designed around two main principles:
- Allow the execution of tasks in multi-container environments, in order to support concurrent execution of multiple communicating tasks in a multi-agent ecosystem.
- Relax the requirement of a single shared data space, in order to allow for hybrid workflow executions on top of multi-cloud or hybrid cloud/HPC infrastructures.
Use StreamFlow
PyPI
The StreamFlow module is available on PyPI, so you can install it using pip.
pip install streamflow
Please note that StreamFlow requires python >= 3.10. Then you can execute it directly from the CLI
streamflow run /path/to/streamflow.yml
Docker
StreamFlow Docker images are available on Docker Hub. In order to run a workflow inside the StreamFlow image
- A StreamFlow project, containing a
streamflow.ymlfile and all the other relevant dependencies (e.g. a CWL description of the workflow steps and a Helm description of the execution environment) needs to be mounted as a volume inside the container, for example in the/streamflow/projectfolder - Workflow outputs, if any, will be stored in the
/streamflow/resultsfolder. Therefore, it is necessary to mount such location as a volume in order to persist the results - StreamFlow will save all its temporary files inside the
/tmp/streamflowlocation. For debugging purposes, or in order to improve I/O performances in case of huge files, it could be useful to mount also such location as a volume - The path of the
streamflow.ymlfile inside the container (e.g./streamflow/project/streamflow.yml) must be passed as an argument to the Docker container
The script below gives an example of StreamFlow execution in a Docker container
docker run -d \
--mount type=bind,source="$(pwd)"/my-project,target=/streamflow/project \
--mount type=bind,source="$(pwd)"/results,target=/streamflow/results \
--mount type=bind,source="$(pwd)"/tmp,target=/tmp/streamflow \
alphaunito/streamflow \
streamflow run /streamflow/project/streamflow.yml
Kubernetes
It is also possible to execute the StreamFlow container as a Job in Kubernetes.
In this case, StreamFlow is able to deploy Helm charts directly on the parent cluster through the
ServiceAccount credentials. In order to do that, the inCluster option must be set to true for each
involved module on the streamflow.yml file
deployments:
helm-deployment:
type: helm
config:
inCluster: true
...
A Helm template of a StreamFlow Job can be found in the helm/chart folder.
Please note that, in case RBAC is active on the
Kubernetes cluster, a proper RoleBinding must be attached to the ServiceAccount object, in order to give
StreamFlow the permissions to manage deployments of pods and executions of tasks.
CWL Compatibility
StreamFlow relies on the Common Workflow Language (CWL) standard to design workflow models. CWL conformance badges for StreamFlow are reported below.
CWL v1.0
Classes
Required features
Optional features
CWL v1.1
Classes
Required features
Optional features
CWL v1.2
Classes
Required features
Optional features
Contribute to StreamFlow
See contribution.
StreamFlow Team
Iacopo Colonnelli iacopo.colonnelli@unito.it (creator and maintainer)
Barbara Cantalupo barbara.cantalupo@unito.it (maintainer)
Marco Aldinucci aldinuc@di.unito.it (maintainer)
Gaetano Saitta gaetano.saitta@edu.unito.it (contributor)
Alberto Mulone alberto.mulone@edu.unito.it (contributor)
Release files for streamflow 0.2.0rc3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| streamflow-0.2.0rc3.tar.gz | 331.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| streamflow-0.2.0rc3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 670.9 kB
Release files / streamflow-0.2.0rc3.tar.gz
| Download URL | streamflow-0.2.0rc3.tar.gz |
|---|---|
| Size | 331.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
07bd78a8c96873eaa37836ef80230ff519fd8c3285be634a6e842fd757ec0917
|
|
BLAKE2b-256 checksum How to use checksums |
382693807dad6d730c1a0a150b2d7c80b253c8ce82853901a2ca15b1820c2983
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / streamflow-0.2.0rc3-py3-none-any.whl
| Download URL | streamflow-0.2.0rc3-py3-none-any.whl |
|---|---|
| Size | 339.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c586684e8734474a1bdc3220278dbffb5ec8a2ee253855c57b3cc3b4017ace6f
|
|
BLAKE2b-256 checksum How to use checksums |
ec4c2ab081f55bcef6800c25ed91821257c87d1b864b6773331d1d17ba25229d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log