package mirage-channel

  1. Overview
  2. No Docs
Buffered channels for MirageOS FLOW types

Install

Dune Dependency

Authors

Maintainers

Sources

mirage-channel-v4.0.0.tbz
sha256=b7e618d311af43a9d3db5b90f945ebde1e09c9e318cf8599d99fb314620cb485
sha512=820057723c197f6454519b606b062272badb921258e365b19c2dbb2c81bdcb6fa0ecf190b7cc44fa936b050da56335a26b7c46cc692c970d6546c86e810010b3

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: 24 Oct 2019

Dependencies (6)

  1. logs
  2. cstruct >= "4.0.0"
  3. lwt >= "4.0.0"
  4. mirage-flow >= "2.0.0"
  5. dune >= "1.0"
  6. ocaml >= "4.06.0"

Dev Dependencies (2)

  1. mirage-flow-combinators with-test & >= "2.0.0"
  2. alcotest with-test

Used by (8)

  1. caqti-mirage
  2. cohttp-mirage >= "2.4.0"
  3. docteur-unix < "0.0.3"
  4. git-mirage >= "2.1.2" & < "3.0.0"
  5. mirage-types >= "3.7.1"
  6. pgx_lwt_mirage
  7. protocol-9p >= "2.0.2"
  8. protocol-9p-unix >= "2.0.2"

Conflicts (1)

  1. tcpip < "3.0.0"