File 1.cabal of Package ghc-network-transport

Name:          network-transport
x-revision: 1
Cabal-Version: >=1.6
Build-Type:    Simple
License:       BSD3
License-File:  LICENSE
Copyright:     Well-Typed LLP
Author:        Duncan Coutts, Nicolas Wu, Edsko de Vries
Maintainer:    Facundo Domínguez <>
Stability:     experimental
Synopsis:      Network abstraction layer
Description:   "Network.Transport" is a Network Abstraction Layer which provides
               the following high-level concepts:
                 * Nodes in the network are represented by 'EndPoint's. These are
                   heavyweight stateful objects.
                 * Each 'EndPoint' has an 'EndPointAddress'.
                 * Connections can be established from one 'EndPoint' to another
                   using the 'EndPointAddress' of the remote end.
                 * The 'EndPointAddress' can be serialised and sent over the
                   network, where as 'EndPoint's and connections cannot.
                 * Connections between 'EndPoint's are unidirectional and lightweight.
                 * Outgoing messages are sent via a 'Connection' object that
                   represents the sending end of the connection.
                 * Incoming messages for /all/ of the incoming connections on
                   an 'EndPoint' are collected via a shared receive queue.
                 * In addition to incoming messages, 'EndPoint's are notified of
                   other 'Event's such as new connections or broken connections.
               This design was heavily influenced by the design of the Common
               Communication Interface
               Important design goals are:
               * Connections should be lightweight: it should be no problem to
                 create thousands of connections between endpoints.
               * Error handling is explicit: every function declares as part of
                 its type which errors it can return (no exceptions are thrown)
               * Error handling is "abstract": errors that originate from
                 implementation specific problems (such as "no more sockets" in
                 the TCP implementation) get mapped to generic errors
                 ("insufficient resources") at the Transport level.
               This package provides the generic interface only; you will
               probably also want to install at least one transport
               implementation (network-transport-*).
Tested-With:   GHC==7.6.3 GHC==7.8.4 GHC==7.10.3
Category:      Network
extra-source-files: ChangeLog

Source-Repository head
  Type:     git

  Build-Depends:   base >= 4.4 && < 5,
                   binary >= 0.5 && < 0.9,
                   bytestring >= 0.9 && < 0.11,
                   hashable >= && < 1.3,
                   transformers >= 0.2 && < 0.6,
                   deepseq >= 1.0 && < 1.5
  if impl(ghc < 7.6)
    Build-Depends: ghc-prim >= 0.2 && < 0.4
  Exposed-Modules: Network.Transport,
  Extensions:      ForeignFunctionInterface,
  GHC-Options:     -Wall -fno-warn-unused-do-bind
  HS-Source-Dirs:  src
  if os(win32)
      extra-libraries: ws2_32