package lwt-pipeline

  1. Overview
  2. Docs
Pipeline library for Lwt

Install

Dune Dependency

Authors

Maintainers

Sources

lwt_pipeline-release-0.1.tar.gz
md5=420fa855e112d8719c3211a65d1fe03a
sha512=0ee99fa08d93457a9be7adecb8ee204fb0576526a25bc1a9c442f831fbdbcc41a257fa9ecae063948ea60cb1d7a44ca685bcfe7061d9a6e2182c1bb4944703a8

Description

A library to handle pipelines (series of transformation) with support for Lwt-based concurrency.

Published: 06 Aug 2019

README

README

# Pipeline

Pipeline is a library to build and execute processing pipelines with Lwt-based
concurrency.

--------------------------------------------------------------------------------

A pipeline (`('a, 'b) pipe`) is a series of steps (`('c, 'd) step`) which are
daisy-chained in a type-safe way
(`cons: ('a, 'b) step -> ('b, 'c) pipe -> ('a, 'c) pipe`).

A step can either be:
- synchronous (`sync: ('a -> 'b) -> ('a, 'b) step`) in which case its
  transformation is applied immediately to the data that traverses the pipeline,
- asynchronous-sequential (`async_s: ('a -> 'b Lwt.t) -> ('a, 'b) step`) in
  which case its transformation is applied as an Lwt promise, but only one such
  promise is ever not resolved at a time, or
- asynchronous-parallel (`async_p: ('a -> 'b Lwt.t) -> ('a, 'b) step`) in which
  case its transformation is applied as an Lwt promise, but multiple such
  promises cat be not resolved at the same time.

When a pipeline is executed (`run: ('i, 'o) pipe -> 'i list -> 'o list Lwt.t`)
each element of the input list goes through each of the steps one-by-one, and
the order is always preserved. In addition, an optional `pool` argument can be
used to limit the number of promises that can be not resolved at any given time.

Dependencies (3)

  1. lwt
  2. dune >= "1.7" & < "2.0"
  3. ocaml >= "4.03"

Dev Dependencies

None

Used by

None

Conflicts

None