cabal-version: 3.0 Name: network-transport Version: 0.5.8 Build-Type: Simple License: BSD-3-Clause License-File: LICENSE Copyright: Well-Typed LLP Author: Duncan Coutts, Nicolas Wu, Edsko de Vries maintainer: The Distributed Haskell team Stability: experimental Homepage: https://haskell-distributed.github.io Bug-Reports: https://github.com/haskell-distributed/distributed-process/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, whereas '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==8.10.7 GHC==9.0.2 GHC==9.2.8 GHC==9.4.5 GHC==9.6.4 GHC==9.8.2 GHC==9.10.1 Category: Network extra-doc-files: ChangeLog source-repository head Type: git Location: https://github.com/haskell-distributed/distributed-process SubDir: packages/network-transport common warnings ghc-options: -Wall -Wcompat -Widentities -Wincomplete-uni-patterns -Wincomplete-record-updates -Wredundant-constraints -fhide-source-paths -Wpartial-fields Library import: warnings Build-Depends: base >= 4.14 && < 5, binary >= 0.8 && < 0.9, bytestring >= 0.10 && < 0.13, hashable >= 1.2.0.5 && < 1.6, transformers >= 0.2 && < 0.7, deepseq >= 1.0 && < 1.6 Exposed-Modules: Network.Transport Network.Transport.Util Network.Transport.Internal Other-Extensions: ForeignFunctionInterface Default-Extensions: RankNTypes, ScopedTypeVariables, DeriveDataTypeable, GeneralizedNewtypeDeriving, CPP GHC-Options: -fno-warn-unused-do-bind HS-Source-Dirs: src Default-Language: Haskell2010 if os(win32) extra-libraries: ws2_32