File 1.cabal of Package ghc-network-transport

Name:          network-transport
Version:       0.4.4.0
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 <facundo.dominguez@tweag.io>
Stability:     experimental
Homepage:      http://haskell-distributed.github.com
Bug-Reports:   https://github.com/haskell-distributed/network-transport/issues
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
               (<http://www.olcf.ornl.gov/center-projects/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
  Location: https://github.com/haskell-distributed/network-transport

Library
  Build-Depends:   base >= 4.4 && < 5,
                   binary >= 0.5 && < 0.9,
                   bytestring >= 0.9 && < 0.11,
                   hashable >= 1.2.0.5 && < 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,
                   Network.Transport.Util
                   Network.Transport.Internal
  Extensions:      ForeignFunctionInterface,
                   RankNTypes,
                   ScopedTypeVariables,
                   DeriveDataTypeable,
                   GeneralizedNewtypeDeriving,
                   CPP
  GHC-Options:     -Wall -fno-warn-unused-do-bind
  HS-Source-Dirs:  src
  if os(win32)
      extra-libraries: ws2_32