network-transport: Network abstraction layer
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
(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
- network-transport-0.5.8.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
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'.
Maintainer's Corner
- DuncanCoutts, EdskoDeVries, FacundoDominguez, MathieuBoespflug, TimWatson, LaurentRDC, davidsd, JoelMcCracken
For package maintainers and hackage trustees
Candidates
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 | 24452 total (110 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] |