package channel

  1. Overview
  2. Docs
MirageOS channels

Install

Dune Dependency

Authors

Maintainers

Sources

channel-1.1.1.tbz
sha256=0681979230241c43bae5d1b7d11c2977a4721a2f2fc4ab8a02a25c09a771e414
md5=219f4fa56171f698618b87eb48d7257e

Description

An implementation of MirageOS' V1.CHANNEL using page aligned buffers.

Tags

org:mirage

Published: 20 Oct 2016

README

mirage-channel — Buffered channels for MirageOS FLOW types

v1.1.1

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.

Installation

mirage-channel can be installed with opam:

opam install channel

If you don't use opam consult the opam file for build instructions.

Documentation

The documentation and API reference is automatically generated by ocamldoc from the interfaces. It can be consulted online and there is a generated version in the doc directory of the distribution.

Sample programs

If you installed mirage-channel with opam sample programs are located in the directory opam config var channel:doc.

In the distribution sample programs and tests are located in the test directory of the distribution. They can be built with:

./build test

The resulting binaries are in _build/test.

  • test.native tests the library, nothing should fail.

Dependencies (9)

  1. logs
  2. cstruct
  3. lwt >= "2.4.7"
  4. io-page < "2.0.0"
  5. mirage-types-lwt < "3.0.0"
  6. topkg build
  7. ocamlbuild build
  8. ocamlfind build
  9. ocaml >= "4.01.0"

Dev Dependencies (3)

  1. mirage-flow with-test & < "1.2.0"
  2. ounit with-test
  3. alcotest with-test

Used by (7)

  1. datakit-ci < "0.10.0"
  2. dns-forward < "0.9.0"
  3. git >= "1.5.3" & < "1.10.0"
  4. mirage-git
  5. mirage-http >= "2.5.0" & < "3.0.0"
  6. protocol-9p >= "0.7.2" & < "0.9.0"
  7. tcpip >= "2.5.1" & < "3.0.0"

Conflicts (1)

  1. tcpip < "2.5.0"
OCaml

Innovation. Community. Security.