mirage-channel — Buffered channels for MirageOS FLOW types ---------------------------------------------------------- v5.0.0 Channels are buffered reader/writers built on top of unbuffered `FLOW` implementations. Example: ```ocaml module Channel = Channel.Make(Flow) ... Channel.read_exactly ~len:16 t >>= function | Error read_error | Ok `Eof -> ... | Ok `Data bufs -> (* read header of message *) let payload_length = Cstruct.(LE.get_uint16 (concat bufs) 0) in Channel.read_exactly ~len:payload_length t >>= function | Ok `Data bufs -> (* payload of message *) | Ok `Eof -> ... | Error read_error (* process message *) Channel.write_buffer t header; Channel.write_buffer t payload; Channel.flush t >>= function | Error write_error -> ... | Ok () -> ... ``` mirage-channel is distributed under the ISC license. * Homepage: https://github.com/mirage/mirage-channel * Issue: * Contact: `` ## Installation mirage-channel can be installed with `opam`: opam install mirage-channel If you don't use `opam` consult the [`opam`](opam) file for build instructions. ## Documentation The documentation and API reference is automatically generated by `ocamldoc` from the interfaces. It can be consulted [online][doc] and there is a generated version in the `doc` directory of the distribution. [doc]: http://docs.mirage.io/channel ## 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`](test) directory of the distribution. They can be built with: dune runtest