package bistro

  1. Overview
  2. Docs
A library to build and run distributed scientific workflows

Install

Dune Dependency

Authors

Maintainers

Sources

bistro-0.6.0.tbz
sha256=146177faaaa9117a8e2bf0fd60cb658662c0aa992f35beb246e6fd0766050e66
sha512=553fe0c20f236316449b077a47e6e12626d193ba1916e9da233e5526dd39090e8677277e1c79baace3bdc940cb009f25431730a8efc00ae4ed9cc42a0add9609

doc/bistro/Bistro/index.html

Module BistroSource

A library to build scientific workflows.

This module introduces a type 'a workflow that describes a set of inter-dependent steps that will eventually generate a value of type 'a. Steps may be either command lines to be executed, or OCaml expressions to be evaluated.

To build shell-based workflows, use the Shell_dsl module, that provides a set of combinators to write shell scripts easily. For instance, the following function shows how to create a gzipped file using the output of another workflow:

  let gzip (x : 'a pworkflow) : 'a gz pworkflow =
    Workflow.shell ~descr:"unix.gzip" [
      cmd "gzip" [ string "-c" ; dep x ; string ">" dest ]
    ]

Base types

Sourcetype 'a workflow

Representation of a computational pipeline. Constructors are provided in the Workflow module. Note that a workflow is just a recipe to build some result. Building the workflow won't actually generate anything. In order to run the workflow, you have to run it using an execution engine like the one provided by bistro.engine.

Sourcetype 'a path

Abstract representation of a path in the filesystem. The type parameter can be used to provide information on the format of a file (this is an instance of phantom-typing).

Sourceclass type regular_file_t = object ... end

Base class for files when typing a path

Sourceclass type directory_t = object ... end

Base class for directories when typing a path

Sourcetype 'a file = (regular_file_t as 'a) path workflow

Type alias for workflows that produce a regular file

Sourcetype 'a directory = < directory_t ; contents : 'a > path workflow

Type alias for workflows that produce a directory

Building shell-based workflow

Sourcetype container_image
Sourcemodule Template_dsl : sig ... end

Representation of scripts

Sourcemodule Shell_dsl : sig ... end

Command-line construction

Sourcemodule Workflow : sig ... end

Workflow constructors

File formats

Sourceclass type text = object ... end
Sourceclass type 'a sexp_value = object ... end
Sourceclass type binary_file = object ... end
Sourceclass type pdf = object ... end
Sourceclass type html = object ... end
Sourceclass type png = object ... end
Sourceclass type svg = object ... end
Sourceclass type tsv = object ... end
Sourceclass type csv = object ... end
Sourceclass type 'a zip = object ... end
Sourceclass type 'a gz = object ... end
Sourceclass type 'a bz2 = object ... end
Sourceclass type 'a tar = object ... end
Sourcemodule Private : sig ... end

Access to internal representation

OCaml

Innovation. Community. Security.