tweag / funflow

Functional workflows
MIT License
362 stars 32 forks source link
content-addressable-storage reproducible-research workflow

Funflow

Compose and run computational workflows.

Looking for the previous major version of funflow? It can be found here.

Introduction

funflow is a Haskell library to write workflows programmatically, using kernmantle under the hood to model workflows using binary effects.

Funflow allows you to compose tasks into reusable workflows and helps promote reproducibility by employing a content-addressed store.

https://tweag.github.io/funflow/

Getting started

Installation

Cookiecutter Template

To get started with a simple project, you can use the cookiecutter template provided with this repo:

cookiecutter git@github.com:tweag/funflow.git --directory cookiecutter-funflow

Stack

While Funflow 2 hasn't been plublished on Hackage yet, you can install it as a git dependency using the standard Haskell tooling (e.g. Stack). Note that you will also need to add a couple of extra dependencies to your stack.yaml. See the example stack.yaml for a minimal example.

Tutorials

Check out the tutorials on the funflow website to get started: https://tweag.github.io/funflow/tutorials/.

You can run the tutorial notebooks using the nix shell provided in the funflow-tutorial directory.

Documentation

The API documentation can be found here: https://tweag.github.io/funflow/api/

Developement

For those interested in contributing, please see DEVELOPMENT.md.