package mirage-channel-lwt
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=e543067be41f49e2f222381f79dbee6ac960ca2721a464df3c01bc8f4d9b0224
md5=8337ec2339d226bd5c9096fa0f428ecd
Description
An implementation of MirageOS' V1.CHANNEL using page aligned buffers.
README
mirage-channel — Buffered channels for MirageOS FLOW types
3.0.0
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.
Homepage: https://github.com/mirage/mirage-channel
Contact:
<mirageos-devel@lists.xenproject.org>
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 (11)
- logs
- cstruct
-
lwt
>= "2.4.7"
- result
- io-page
-
mirage-channel
= "3.0.0"
-
mirage-flow-lwt
= "1.2.0"
-
topkg
build & >= "0.8.0"
-
ocamlbuild
build
-
ocamlfind
build
-
ocaml
>= "4.01.0"
Dev Dependencies (2)
-
io-page-unix
with-test
-
alcotest
with-test
Used by (7)
-
cohttp-mirage
< "2.4.0"
-
dns-forward
>= "0.9.0"
-
git-mirage
< "2.1.2"
-
mirage-http
>= "3.0.0"
-
mirage-types-lwt
>= "3.0.0" & < "3.4.0"
-
protocol-9p
>= "0.9.0" & < "2.0.2"
-
protocol-9p-unix
< "2.0.2"
Conflicts (1)
-
tcpip
< "3.0.0"