mirage-channel

Buffered channels for MirageOS FLOW types
Description

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.

Install
Published
05 Nov 2019
Authors
Maintainers
Sources
mirage-channel-v4.0.1.tbz
sha256=ecbaed5f601c9d33b86222523f07ad0cae149ad7ec6af63a3a165d1fe117ab72 sha512=c73abf66fa476a3202af01b7ab2ef95362deae5718fa2656f3165e39a601ac3088e65b4714de5341c8073f9f61194d48b756812e1e9c761fd94eb4c37dad2444
Dependencies
mirage-flow-combinators with-test & >= "2.0.0"
alcotest with-test
cstruct >= "4.0.0" & < "6.1.0"
lwt >= "4.0.0"
mirage-flow >= "2.0.0"
dune >= "1.0"
ocaml >= "4.06.0"
Reverse Dependencies
cohttp-mirage >= "2.4.0"
docteur-unix < "0.0.3"
git-mirage >= "2.1.2" & < "3.0.0"
mirage-types >= "3.7.1"
protocol-9p >= "2.0.2"
Conflicts
tcpip < "3.0.0"