Skip to content

Concurrent, streaming access to the input and outputs of system processes.

License

Notifications You must be signed in to change notification settings

danidiaz/process-streaming

Repository files navigation

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

About

Concurrent, streaming access to the input and outputs of system processes.

Resources

License

Stars

Watchers

Forks

Packages

No packages published