-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathmirage-channel.opam
52 lines (47 loc) · 1.32 KB
/
mirage-channel.opam
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
opam-version: "2.0"
maintainer: "Anil Madhavapeddy <[email protected]>"
authors: ["Anil Madhavapeddy" "Mindy Preston" "Thomas Gazagnaire"]
license: "ISC"
tags: "org:mirage"
homepage: "https://github.com/mirage/mirage-channel"
doc: "https://mirage.github.io/mirage-channel/"
bug-reports: "https://github.com/mirage/mirage-channel/issues"
depends: [
"ocaml" {>= "4.07.0"}
"dune" {>= "1.0"}
"mirage-flow" {>= "2.0.0"}
"lwt" {>= "4.0.0"}
"cstruct" {>= "6.0.0"}
"logs"
"alcotest" {with-test}
"mirage-flow-combinators" {with-test & >= "2.0.0"}
]
conflicts: [
"tcpip" {< "3.0.0"}
]
build: [
["dune" "subst"] {dev}
["dune" "build" "-p" name "-j" jobs]
]
dev-repo: "git+https://github.com/mirage/mirage-channel.git"
synopsis: "Buffered channels for MirageOS FLOW types"
description: """
Channels are buffered reader/writers built on top of unbuffered `FLOW`
implementations.
Example:
```ocaml
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.
"""