The conduit
library is a simple framework to abstract a protocol. It
permits, for a protocol implementer, to get rid the responsibility of the
protocols choice (such as the TLS implementation). So, it provides a degree of
abstraction from precise protocol (like TLS or TCP/IP) libraries used - since
there are a variety of them.
The documentation is available here.
A simple HOW-TO to describe how to implement a ping-pong server/client and how to upgrade them with TLS is available here
A more complete (but less easier to understand) document to describe Conduit is available here.
Conduit comes with several packages:
conduit
: the core library which has only 3 dependenciesconduit-tls
: a Conduit-compatible ocaml-tls implementationconduit-lwt
: the library with lwt, it provides a Conduit-compatible Host's TCP/IP protocolconduit-async
: the library with async, it provides a Conduit-compatible Host's TCP/IP protocolconduit-lwt-{ssl,tls}
provides the Host's TCP/IP protocol with SSL (OpenSSL) and TLS (ocaml-tls
)conduit-async-{ssl,tls}
provides the Host's TCP/IP protocol with SSL (OpenSSL) and TLS (ocaml-tls
)conduit-mirage
a Conduit-compatible mirage-tcpip protocol