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.
- 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