network-transport: Network abstraction layer

[ bsd3, library, network ] [ Propose Tags ] [ Report a vulnerability ]

Network.Transport is a Network Abstraction Layer which provides the following high-level concepts: . * Nodes in the network are represented by EndPoints. 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 EndPoints and connections cannot. . * Connections between EndPoints 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, EndPoints are notified of other Events 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-*).

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Versions [RSS] 0.2.0, 0.2.0.1, 0.2.0.2, 0.3.0, 0.3.0.1, 0.4.0.0, 0.4.1.0, 0.4.2.0, 0.4.3.0, 0.4.3.1, 0.4.4.0, 0.5, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.5.5, 0.5.6, 0.5.7, 0.5.8
Change log ChangeLog
Dependencies base (>=4.14 && <5), binary (>=0.8 && <0.9), bytestring (>=0.10 && <0.13), deepseq (>=1.0 && <1.7), hashable (>=1.2.0.5 && <1.6), transformers (>=0.2 && <0.7) [details]
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
License BSD-3-Clause
Copyright Well-Typed LLP
Author Duncan Coutts, Nicolas Wu, Edsko de Vries
Maintainer The Distributed Haskell team
Revised Revision 1 made by LaurentRDC at 2024-09-08T18:55:04Z
Category Network
Home page https://haskell-distributed.github.io
Bug tracker https://github.com/haskell-distributed/distributed-process/issues
Source repo head: git clone https://github.com/haskell-distributed/distributed-process(packages/network-transport)
Uploaded by LaurentRDC at 2024-09-03T15:09:31Z
Distributions LTSHaskell:0.5.8, NixOS:0.5.8, Stackage:0.5.8
Reverse Dependencies 22 direct, 18 indirect [details]
Downloads 24483 total (112 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-09-03 [all 1 reports]