Channels are buffered reader/writers built on top of unbuffered
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.
mirage-channel can be installed with
opam install channel
If you don't use
opam consult the
opam file for build
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
If you installed mirage-channel with
opam sample programs are located in
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:
The resulting binaries are in
test.nativetests the library, nothing should fail.
with-test & < "1.4.0"
>= "3.0.0" & < "4.0.0"