# DynamicPipeline

[](https://hackage.haskell.org/package/dynamic-pipeline)
**DynamicPipeline** is a *Type Safe* Dynamic and Parallel Streaming Library, which is an implementation of **Dynamic Pipeline Paradigm (DPP)**
proposed in this paper [DPP](https://biblioteca.sistedes.es/articulo/the-dynamic-pipeline-paradigm/).
The aim of this Library is to provide all the **Type level** constructs to guide the user in building a *DPP* flow to solve any algorithm that fits on this computational model.
This implementation has been developed using *Type Level Programming* techniques like `Type families`, `Defunctionalization`, `Existential Types` and `Dynamic Record Tagged Types` among others.
Using all this techniques, we provide a *High Level and Type Safe* **DPP** Library to build a Data Flow Algorithm avoiding as much as possible boilerplate code, but maintaining safety and robustness.
## Prerequisites
This project has been built and developed with the following versions:
- [Stack](https://docs.haskellstack.org/en/stable/README/) `2.1.3` or higher
- Stack LTS `17.7`
- [GHC](https://www.haskell.org/ghc/) `8.10.3`
## Cloning the project
```bash
git clone https://github.com/jproyo/dynamic-pipeline
```
## Issues
https://github.com/jproyo/dynamic-pipeline/issues
## Pull Request
https://github.com/jproyo/dynamic-pipeline/pulls
## Licensing
`dynamic-pipeline` is an open source project available under a liberal [BSD-3-Clause license](./LICENSE)