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 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
- network-transport-0.5.9.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
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, 0.5.9 |
|---|---|
| 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, ghc ==9.12.1 |
| License | BSD-3-Clause |
| Copyright | Well-Typed LLP |
| Author | Duncan Coutts, Nicolas Wu, Edsko de Vries |
| Maintainer | The Distributed Haskell team |
| 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 2025-02-05T01:57:08Z |
| Distributions | LTSHaskell:0.5.9, NixOS:0.5.9, Stackage:0.5.9 |
| Reverse Dependencies | 22 direct, 18 indirect [details] |
| Downloads | 25181 total (65 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs available [build log] Last success reported on 2025-02-05 [all 1 reports] |