mirage-channel-lwt

AuthorsAnil Madhavapeddy, Mindy Preston and Thomas Gazagnaire
LicenseISC
Homepagehttps://github.com/mirage/mirage-channel
Issue Trackerhttps://github.com/mirage/mirage-channel/issues
Tagorg:mirage
MaintainerAnil Madhavapeddy <anil@recoil.org>
Dependencies
&alcotest
cstruct
io-page
io-page-unix
jbuilder>= 1.0+beta10
logs
lwt>= 2.4.7
mirage-channel>= 3.1.0
mirage-flow-lwt>= 1.2.0
result
Availableocaml-version >= "4.02.3"
PublishedJun 14, 2017
Source [http] https://github.com/mirage/mirage-channel/releases/download/v3.1.0/mirage-channel-3.1.0.tbz
942d02ee627c0bae75ce5e7e16c1153e
StatisticsInstalled 108 times last month.
Edithttps://github.com/ocaml/opam-repository/tree/master/packages/mirage-channel-lwt/mirage-channel-lwt.3.1.0/opam

Buffered channels for MirageOS FLOW types

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.