Utilities for creating and waiting on ports https://github.com/jfischoff/port-utils#readme

Version on this page:
Stackage Nightly 2018-12-12:
Latest on Hackage:

See all snapshots port-utils appears in

BSD3 licensed by Jonathan Fischoff
Maintained by jonathangfischoff@gmail.com

Module documentation for

There are no documented modules for this package.



This is another version of warp’s openFreePort function. This function has fewer dependencies than the warp version.

openFreePort returns a socket on a random port and the port it has been bound to.

openFreePort :: IO (Int, Socket)


wait will attempt to connect to a host and port until it is successful. Between each unsuccessful attempt, it sleeps for 10 ms.

Here is an example of the primary function:

import Network.Socket.Wait (wait)

void $ forkIO $ Warp.run 7000 app
-- Wait for the server to start listening on the socket
wait "" 7000
-- Communicate with the server

In bash one could write:

while ! nc -z localhost 7000 ; do sleep 0.01 ; done

The bash script above was copied from this stackoverflow answer https://stackoverflow.com/a/50008755


Changelog for wait-on-port

  • First version

  • Rework internals and change EventHandlers to EventHandlers m. Fix bug if host could not be found. It would loop forever and now throws.

Depends on 2 packages:
Used by 1 package:
comments powered byDisqus