Common lower-level functions needed by various streaming data libraries

Version on this page:0.1.15
LTS Haskell 21.22:
Stackage Nightly 2023-12-01:
Latest on Hackage:

See all snapshots streaming-commons appears in

MIT licensed by Michael Snoyman, Emanuel Borsboom
Maintained by
This version can be pinned in stack with:streaming-commons-0.1.15@sha256:4fd583b3184a792a7212690466309c63b277502e875b098958c2f3da81bf29a1,5144


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.



  • Use `NO_DELAY1 for TCP client connections #27

  • Fix bug in process exception display of args with spaces/quotes


  • Exporting HasReadBufferSize; instance for ClientSettingsUnix #24


  • Make size of read buffer configurable, change default size to 32 kiB #23


  • appRawSocket


  • getUnusedInflated: Return uncompressed data following compressed data #20


Support blaze-builder >= 0.4. Add newByteStringBuilderRecv to Data.Streaming.ByteString.Builder; add modules Data.Streaming.ByteString.Builder.Buffer and Data.Streaming.ByteString.Builder.Class.


Add Data.Streaming.ByteString.Builder


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.