BSD-3-Clause licensed by Renzo Carbonara
Maintained by renzocarbonaraλ
This version can be pinned in stack with:pipes-network-0.6.5@sha256:1dd16c7dd7f70c0683052c486f4d46d89ff4ae68d0738da2efa451d452fcd657,1776

Module documentation for 0.6.5


Utilities to deal with sockets using the pipes and pipes-safe libraries.

Check the source or rendered Haddocks for extensive documentation.

This code is licensed under the terms of the so called 3-clause BSD license. Read the file named LICENSE found in this same directory for details.

See the PEOPLE file to learn about the people involved in this effort.


Version 0.6.5

  • Remover upper bound on all dependencies except base.

  • Fixed internal error handling in server-side functions.

  • Re-export MonadSafe.


  • Raise upper-bound dependency on transformers and pipes.

Version 0.6.4

  • The various fromServe and toServe* pipes from Pipes.Network.TCP.Safe now close the listening socket immediately after accepting a first connection.

  • Re-export sendLazy, sendMany and closeSock.

  • Add to{Socket,SocketTimeout,Serve,Connect}{Lazy,Many}.

  • Fix issue #29 where fromSocketTimeout and fromSocketTimeoutN would loop forever.

Version 0.6.3

  • Bump network-simple, transformers and pipes-safe upper bounds.

  • Remove Base m ~ IO constraints from Pipes.Network.TCP.Safe, as not all of them were removed in 0.6.1.

Version 0.6.2

  • Dependency bumps (upper bounds).

Version 0.6.1

  • Remove the Base m ~ IO constraint from Pipes.Network.TCP.Safe

Version 0.6.0

  • Significantly upgraded the API and renamed functions to play well with pipes-4.0.0, pipes-safe-2.0.0 and network-simple-0.3.0.

  • Throw IOError in IO in order to report timeout errors. Delete the Timeout data-type.


  • Re-export Network.Socket.withSocketsDo.

  • Use TCP send and recv as eported by network-simple-


  • Removed Control.Proxy.TCP.Sync and Control.Proxy.TCP.Safe.Sync.


  • FIX: acceptFork now properly closes the connection socket, even in case of asynchronous exceptions.


  • Do not handle “Broken Pipe” errors on the *Write*D proxies anymore. As as a result, those proxies run forever and have a polymorphic return value, which makes this release binary compatible with, but not with


  • Quietly stop writing or reading bytes from a TCP socket if a “Broken Pipe” error happens, indicating that the remote end already closed the connection. Previously, a ResourceVanished exception was thrown.

  • All the *Write*D proxies now return () if the remote end closed the connection.


  • Depend on network-simple 0.2

  • In both modules Control.Proxy.TCP and Control.Proxy.TCP.Safe: serveFork was renamed to serve and the previous function named serve was removed.


  • Split many of the non-pipes-related TCP utilities to the own network-simple package.
  • Depend on network-simple and re-export its functions.


  • Dependency bumps.

Version 0.1.0

  • New backwards incompatible API
  • Based on pipes 3.1

Up to version 0.0.2

  • Based on pipes-core.