mirage-channel

Buffered channels for MirageOS FLOW types
README

v3.2.0

Channels are buffered reader/writers built on top of unbuffered FLOW
implementations.

Example:

module Channel = Channel.Make(Flow)
...
Channel.read_exactly ~len:16 t
>>= fun bufs -> (* read header of message *)
let payload_length = Cstruct.(LE.get_uint16 (concat bufs) 0) in
Channel.read_exactly ~len:payload_length t
>>= fun bufs -> (* payload of message *)

(* process message *)

Channel.write_buffer t header;
Channel.write_buffer t payload;
Channel.flush t
>>= fun () ->

mirage-channel is distributed under the ISC license.

Installation

mirage-channel can be installed with opam:

opam install channel

If you don't use opam consult the opam file for build
instructions.

Documentation

The documentation and API reference is automatically generated by
ocamldoc from the interfaces. It can be consulted online
and there is a generated version in the doc directory of the
distribution.

Sample programs

If you installed mirage-channel with opam sample programs are located in
the directory opam config var channel:doc.

In the distribution sample programs and tests are located in the
test directory of the distribution. They can be built with:

./build test

The resulting binaries are in _build/test.

  • test.native tests the library, nothing should fail.

Install
Sources
mirage-channel-v3.2.0.tbz
md5=d42c47f25978a16519bdbeafbeae876a
Dependencies
mirage-flow
>= "1.2.0" & < "2.0.0"
dune
>= "1.0"
ocaml
>= "4.04.2"
Reverse Dependencies
docteur-unix
< "0.0.3"
mirage-types
>= "3.0.0" & < "3.7.1"
vpnkit
>= "0.1.1"