Common lower-level functions needed by various streaming data libraries

Version on this page:0.1.8@rev:1
LTS Haskell 21.22:
Stackage Nightly 2023-12-01:
Latest on Hackage:

See all snapshots streaming-commons appears in

MIT licensed by Michael Snoyman
Maintained by
This version can be pinned in stack with:streaming-commons-0.1.8@sha256:e4c6964ab84d2bf6d48c604bc6941611bdf87dbb823725ef69f1e9d74031ad7d,3833

Module documentation for 0.1.8

  • Data
    • Data.Streaming
      • Data.Streaming.Blaze
      • Data.Streaming.FileRead
      • Data.Streaming.Filesystem
      • Data.Streaming.Network
        • Data.Streaming.Network.Internal
      • Data.Streaming.Process
        • Data.Streaming.Process.Internal
      • Data.Streaming.Text
      • Data.Streaming.Zlib
        • Data.Streaming.Zlib.Lowlevel


Common lower-level functions needed by various streaming data libraries. Intended to be shared by libraries like conduit and pipes.

Build Status


One of the requirements of this package is to restrict ourselves to “core” dependencies. The definition of core is still to be decided, but here’s a working start:

  • No dependency on system libraries, beyond that which is required by other dependencies.
  • Anything which ships with GHC. However, we must retain compatibility with versions of those packages going back to at least GHC 7.4, and preferably earlier.
  • text, once again with backwards compatibility for versions included with legacy Haskell Platform. In other words, 0.11.2 support is required.
  • network, support back to 2.3. We do not need to support the network/network-bytestring split.
  • stm, preferably all the way back to 2.1.
  • transformers

For debate:

  • Other Haskell Platform packages, especially vector and attoparsec.



Generalise types of run*Server which never cleanly return #13

Fix streamingProcess so that it doesn’t close Handles passed in with UseProvidedHandle.


withCheckedProcess added.


Provide appCloseConnection to get the underlying connection from an AppData.