A Unix domain socket API for the socket library.
Creating the Unix domain socket:
import System.Socket
import System.Socket.Protocol.Default
import System.Socket.Type.Stream
import System.Socket.Family.Unix
s <- socket :: IO (Socket Unix Stream Default)
Creating the address for binding/connecting
address <- case socketAddressUnixPath "example.sock" of
Just addr -> pure addr
Nothing -> fail "invalid pathname for socket"
Binding to a socket with a filename creates a socket in the filesystem, but does not unlink it after close
called. You should handle deleting links yourself.
Linux and OS X are supported.