Streaming interface to system processes.
Concurrent, streaming access to the input and outputs of system processes.
process-streaming
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)
http://hackage.haskell.org/package/turtle
- pipes-cliff (pipes-based)
http://hackage.haskell.org/package/pipes-cliff
- pipes-shell (pipes-based)
http://hackage.haskell.org/package/pipes-shell
- shelly (shell programming)
http://hackage.haskell.org/package/shelly
- shell-conduit (coundit-based, shell programming)
http://hackage.haskell.org/package/shell-conduit
- Data.Conduit.Process from conduit-extra (conduit-based)
http://hackage.haskell.org/package/conduit-extra
- System.IO.Streams.Process from io-streams (iostreams-based)
http://hackage.haskell.org/package/io-streams
- process-extras
http://hackage.haskell.org/package/process-extras.