package mirage-channel

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

Install

Dune Dependency

Authors

Maintainers

Sources

mirage-channel-5.0.0.tbz
sha256=2863bf7c8944f8d08052751e32572701bac2c5a4aa35569af61f0a3b83f25389
sha512=cd4569d7d4d08de3b2565c72eeba2c0e1910664c79f971044d4f94c126aa2aeaac89925fb7f48b321a12517879c21eb998ad3d2551831f838cd64268f50e3877

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: 02 Jun 2025

Dependencies (7)

  1. fmt >= "0.8.7"
  2. logs
  3. cstruct >= "6.0.0"
  4. lwt >= "4.0.0"
  5. mirage-flow >= "4.0.0"
  6. dune >= "1.0"
  7. ocaml >= "4.07.0"

Dev Dependencies (2)

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

Conflicts (1)

  1. tcpip < "3.0.0"
OCaml

Innovation. Community. Security.