package mirage-channel

  1. Overview
  2. Docs

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.

Tags

org:mirage

Published: 14 Jun 2017

Dependencies (4)

  1. result
  2. mirage-flow >= "1.2.0" & < "2.0.0"
  3. jbuilder >= "1.0+beta10"
  4. ocaml >= "4.02.3"

Dev Dependencies

None

Used by (6)

  1. caqti-mirage
  2. docteur-unix < "0.0.3"
  3. mirage-channel-lwt >= "3.1.0"
  4. mirage-types >= "3.0.0" & < "3.7.1"
  5. pgx_lwt_mirage
  6. vpnkit >= "0.1.1"

Conflicts (1)

  1. tcpip < "3.0.0"