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
EndPointhas anEndPointAddress.Connections can be established from one
EndPointto another using theEndPointAddressof the remote end.The
EndPointAddresscan be serialised and sent over the network, where asEndPoints and connections cannot.Connections between
EndPoints are unidirectional and lightweight.Outgoing messages are sent via a
Connectionobject that represents the sending end of the connection.Incoming messages for all of the incoming connections on an
EndPointare collected via a shared receive queue.In addition to incoming messages,
EndPoints are notified of otherEvents 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.4.1.0.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.3 && <5), binary (>=0.5 && <0.8), bytestring (>=0.9 && <0.11), ghc-prim (>=0.2 && <0.4), hashable (>=1.2.0.5 && <1.3), transformers (>=0.2 && <0.5) [details] |
| Tested with | ghc ==7.0.4, ghc ==7.2.2, ghc ==7.4.1, ghc ==7.4.2 |
| License | BSD-3-Clause |
| Copyright | Well-Typed LLP |
| Author | Duncan Coutts, Nicolas Wu, Edsko de Vries |
| Maintainer | edsko@well-typed.com, duncan@well-typed.com, watson.timothy@gmail.com |
| Category | Network |
| Home page | http://haskell-distributed.github.com |
| Bug tracker | https://cloud-haskell.atlassian.net/browse/NT |
| Source repo | head: git clone https://github.com/haskell-distributed/network-transport |
| Uploaded | by TimWatson at 2014年12月09日T10:09:45Z |
| Distributions | LTSHaskell:0.5.9, NixOS:0.5.9, Stackage:0.5.9 |
| Reverse Dependencies | 23 direct, 18 indirect [details] |
| Downloads | 25303 total (80 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs uploaded by user Build status unknown [no reports yet] |