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
04 Apr 2022
Authors
Maintainers
Sources
mirage-channel-4.1.0.tbz
sha256=b0176851d4ddf5978d7072b420118178e6030ea50b33b1185fe3f3d9fda72100 sha512=d6e085cc7c61387fa651757704dd0c76d2fee728725e06174ea8a1c47e63b13217d3683094939a3862fe2f23f18f74dfcdbe4577ba0e9e45609c15d1539edd10
Dependencies
mirage-flow-combinators with-test & >= "2.0.0"
alcotest with-test
cstruct >= "6.0.0"
lwt >= "4.0.0"
mirage-flow >= "2.0.0"
dune >= "1.0"
ocaml >= "4.07.0"
Reverse Dependencies
Conflicts
tcpip < "3.0.0"