Streaming interface to system processes.

Version on this page:
LTS Haskell 6.35:
Stackage Nightly 2016-05-25:
Latest on Hackage:

See all snapshots process-streaming appears in

BSD-3-Clause licensed by Daniel Díaz Carrete
This version can be pinned in stack with:process-streaming-,3335

Module documentation for


A library for interacting with system processes in a streaming fashion.

The basic goals:

  • Concurrent, streaming access to stdin, stdout and stderr…

  • …all the while preventing deadlocks caused by mishandling of the streams.

  • Easy integration with consumers from pipes, parsers from pipes-parse and folds from foldl.

  • Facilitate the use of sum types to signal failures, when desired.

  • No fussing around with process handles: wait for the process by waiting for the IO action, terminate the process by killing the thread executing the IO action.

A relevant thread in the Haskell Pipes Google Group.

Possible alternatives in Hackage

  • turtle (pipes-based, shell programming)

  • pipes-cliff (pipes-based)

  • pipes-shell (pipes-based)

  • shelly (shell programming)

  • shell-conduit (coundit-based, shell programming)

  • Data.Conduit.Process from conduit-extra (conduit-based)

  • System.IO.Streams.Process from io-streams (iostreams-based)

  • process-extras