package conduit
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=df52c4c0967ee8dfd044feca3cb90755132a5bc40e6b2884f64bf2d13755e72d
sha512=0783a6637035ed4c20dc96e995e73f978c9448b11d5caf6d1b351664c6ef0956261a0e44268dbd49953ac603b8b93b0e2b5f8ff4fd20e29ed20d317b10d36776
doc/index.html
Introduction
The Conduit library abstracts the concerns of establishing connections to peers that may be running within the same host (e.g. in another virtual machine) or on a remote host via TCP. It consists of:
- The
Conduitmodule with basic type definitions for endpoints - OS-specific modules for establishing individual connections
- The
Resolvermodule for mapping URIs to endpoints - OS-specific name resolvers that use available resolution mechanisms
Connection Establishment
Connections are created by identifying remote nodes using an endp value. To ensure portability, the endpoints are translated into concrete connections by separate modules that target Lwt_unix, Async and Mirage. This lets those backends use the appropriate local technique for creating the connection (such as using OpenSSL on Unix, or a pure OCaml TLS+TCP implementation on Mirage, or some other combination).
The modules dealing with connection establishment are:
Conduit_lwt_unixConduit_asyncConduit_mirage
Name Resolution
This deals with resolving URIs into a list of endp addresses that can then be connected to by the connection establishment modules.
All of the name resolvers conform to the Resolver.S module type. The OS-specific implementations of this interface are:
Resolver_lwtResolver_lwt_unixResolver_mirage
Mirage Connections
On Mirage, the networking stack is configured via the application of functors to satisfy various signatures. Some of the available functors are:
Conduit_xenstoreConduit_localhost
indexlist