forked from mirage/ocaml-cohttp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
dune-project
386 lines (363 loc) · 9.54 KB
/
dune-project
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
(lang dune 3.0)
(name cohttp)
(license ISC)
(using mdx 0.2)
(cram enable)
(maintainers "Anil Madhavapeddy <[email protected]>")
(authors
"Anil Madhavapeddy"
"Stefano Zacchiroli"
"David Sheets"
"Thomas Gazagnaire"
"David Scott"
"Rudi Grinberg"
"Andy Ray"
"Anurag Soni")
(source
(github mirage/ocaml-cohttp))
(documentation "https://mirage.github.io/ocaml-cohttp/")
(generate_opam_files true)
(package
(name cohttp)
(synopsis "An OCaml library for HTTP clients and servers")
(description
"Cohttp is an OCaml library for creating HTTP daemons. It has a portable\nHTTP parser, and implementations using various asynchronous programming\nlibraries.\n\nSee the cohttp-async, cohttp-lwt, cohttp-lwt-unix, cohttp-lwt-jsoo and\ncohttp-mirage libraries for concrete implementations for particular\ntargets.\n\nYou can implement other targets using the parser very easily. Look at the `IO`\nsignature in `lib/s.mli` and implement that in the desired backend.\n\nYou can activate some runtime debugging by setting `COHTTP_DEBUG` to any\nvalue, and all requests and responses will be written to stderr. Further\ndebugging of the connection layer can be obtained by setting `CONDUIT_DEBUG`\nto any value.\n")
(depends
(http
(= :version))
(ocaml
(>= 4.08))
(re
(>= 1.9.0))
(uri
(>= 2.0.0))
uri-sexp
logs
sexplib0
(ppx_sexp_conv
(>= v0.13.0))
stringext
(base64
(>= 3.1.0))
(fmt :with-test)
(alcotest :with-test)))
(package
(name cohttp-top)
(synopsis "CoHTTP toplevel pretty printers for HTTP types")
(description
"This library installs toplevel prettyprinters for CoHTTP\ntypes such as the `Request`, `Response` and `Types` modules.\nOnce this library has been loaded, you can directly see the\nvalues of those types in toplevels such as `utop` or `ocaml`.\n")
(depends
(ocaml
(>= 4.08))
(cohttp
(= :version))))
(package
(name cohttp-lwt)
(synopsis "CoHTTP implementation using the Lwt concurrency library")
(description
"This is a portable implementation of HTTP that uses the Lwt concurrency library\nto multiplex IO. It implements as much of the logic in an OS-independent way\nas possible, so that more specialised modules can be tailored for different\ntargets. For example, you can install `cohttp-lwt-unix` or `cohttp-lwt-jsoo`\nfor a Unix or JavaScript backend, or `cohttp-mirage` for the MirageOS unikernel\nversion of the library. All of these implementations share the same IO logic\nfrom this module.")
(depends
(ocaml
(>= 4.08))
(http
(= :version))
(cohttp
(= :version))
(lwt
(>= 5.4.0))
sexplib0
(ppx_sexp_conv
(>= v0.13.0))
logs
(uri
(>= 2.0.0))))
(package
(name cohttp-lwt-unix)
(synopsis "CoHTTP implementation for Unix and Windows using Lwt")
(description
"An implementation of an HTTP client and server using the Lwt\nconcurrency library. See the `Cohttp_lwt_unix` module for information\non how to use this. The package also installs `cohttp-curl-lwt`\nand a `cohttp-server-lwt` binaries for quick uses of a HTTP(S)\nclient and server respectively.\n\nAlthough the name implies that this only works under Unix, it\nshould also be fine under Windows too.\n")
(depends
(ocaml
(>= 4.08))
(http
(= :version))
(cohttp
(= :version))
(cohttp-lwt
(= :version))
(cmdliner
(>= 1.1.0))
(lwt
(>= 3.0.0))
(conduit-lwt
(>= 5.0.0))
(conduit-lwt-unix
(>= 5.0.0))
(fmt
(>= 0.8.2))
base-unix
(ppx_sexp_conv
(>= v0.13.0))
magic-mime
logs
(ounit :with-test)))
(package
(name cohttp-server-lwt-unix)
(synopsis "Lightweight Cohttp + Lwt based HTTP server")
(description
"This server implementation is faster than cohttp-lwt-unix and is independent of\nconduit.\n")
(depends
(ocaml
(>= 4.08))
(http
(= :version))
(lwt
(>= 5.5.0))
(conduit-lwt-unix :with-test)
(cohttp-lwt-unix
(and
:with-test
(= :version)))
(cohttp-lwt
(and
:with-test
(= :version)))
lwt))
(package
(name cohttp-lwt-jsoo)
(synopsis "CoHTTP implementation for the Js_of_ocaml JavaScript compiler")
(description
"An implementation of an HTTP client for JavaScript, but using the\nCoHTTP types. This lets you build HTTP clients that can compile\nnatively (using one of the other Cohttp backends such as `cohttp-lwt-unix`)\nand also to native JavaScript via js_of_ocaml.\n")
(depends
(ocaml
(>= 4.08))
(http
(= :version))
(cohttp
(= :version))
(cohttp-lwt
(= :version))
logs
(lwt
(>= 3.0.0))
(lwt_ppx :with-test)
(conf-npm :with-test)
(js_of_ocaml
(>= 3.3.0))
(js_of_ocaml-ppx
(>= 3.3.0))
(js_of_ocaml-lwt
(>= 3.5.0))))
(package
(name cohttp-async)
(synopsis "CoHTTP implementation for the Async concurrency library")
(description
"An implementation of an HTTP client and server using the Async\nconcurrency library. See the `Cohttp_async` module for information\non how to use this. The package also installs `cohttp-curl-async`\nand a `cohttp-server-async` binaries for quick uses of a HTTP(S)\nclient and server respectively.\n")
(depends
(ocaml
(>= 4.14))
(http
(= :version))
(cohttp
(= :version))
(async_kernel
(>= v0.16.0))
(async_unix
(>= v0.16.0))
(async
(>= v0.16.0))
(base
(>= v0.16.0))
(core :with-test)
(core_unix
(>= v0.14.0))
(conduit-async
(>= 1.2.0))
magic-mime
(mirage-crypto :with-test)
logs
(fmt
(>= 0.8.2))
sexplib0
(ppx_sexp_conv
(>= v0.13.0))
(ounit :with-test)
(uri
(>= 2.0.0))
uri-sexp
ipaddr))
(package
(name cohttp-mirage)
(synopsis "CoHTTP implementation for the MirageOS unikernel")
(description
"This HTTP implementation uses the Cohttp portable implementaiton\nalong with the Lwt threading library in order to provide a\n`Cohttp_mirage` functor that can be used in MirageOS unikernels\nto build very small and efficient HTTP clients and servers\nwithout having a hard dependency on an underlying operating\nsystem.\n\nPlease see <https://mirage.io> for a self-hosted explanation\nand instructions on how to use this library.")
(depends
(ocaml
(>= 4.08))
(mirage-flow
(>= 2.0.0))
(mirage-channel
(>= 4.0.0))
(conduit
(>= 2.0.2))
(conduit-mirage
(>= 2.3.0))
(mirage-kv
(>= 3.0.0))
(lwt
(>= 2.4.3))
(cohttp-lwt
(= :version))
(cstruct
(>= 6.0.0))
(fmt
(>= 0.8.7))
astring
magic-mime
(ppx_sexp_conv
(>= v0.13.0))
(cohttp
(= :version))))
(package
(name http)
(synopsis "Type definitions of HTTP essentials")
(description
"This package contains essential type definitions used in Cohttp. It is designed\nto have no dependencies and make it easy for other packages to easily\ninteroperate with Cohttp.")
(depends
(ocaml
(>= 4.08))
(ppx_expect :with-test)
(alcotest :with-test)
(base_quickcheck :with-test)
(ppx_assert :with-test)
(ppx_sexp_conv :with-test)
(ppx_compare :with-test)
(ppx_here :with-test)
(crowbar
(and
:with-test
(>= 0.2)))
(sexplib0 :with-test)))
(package
(name cohttp-curl)
(synopsis "Shared code between the individual cohttp-curl clients")
(description "Use cohttp-curl-lwt or cohttp-curl-async")
(depends
(ocaml
(>= 4.08))
ocurl
(http
(= :version))
stringext))
(package
(name cohttp-curl-lwt)
(synopsis "Cohttp client using Curl & Lwt as the backend")
(description
"An HTTP client that relies on Curl + Lwt for the backend. Does not require\nconduit for SSL.")
(depends
(ocaml
(>= 4.08))
ocurl
(http
(= :version))
(cohttp-curl
(= :version))
stringext
(lwt
(>= 5.3.0))
(uri
(and
:with-test
(>= 4.2.0)))
(alcotest :with-test)
(cohttp-lwt-unix
(and
:with-test
(= :version)))
(cohttp
(and
:with-test
(= :version)))
(cohttp-lwt
(and
:with-test
(= :version)))
(conduit-lwt :with-test)
(ounit :with-test)))
(package
(name cohttp-curl-async)
(allow_empty)
(synopsis "Cohttp client using Curl & Async as the backend")
(description
"An HTTP client that relies on Curl + Async for the backend. Does not require\nconduit for SSL.")
(depends
ocurl
(http
(= :version))
stringext
(cohttp-curl
(= :version))
(core
(>= v0.16.0))
(core_unix
(>= v0.14.0))
async_kernel
async_unix
(cohttp-async
(and
:with-test
(= :version)))
(uri
(and
:with-test
(>= 4.2.0)))
(fmt :with-test)
(ounit :with-test)
(alcotest :with-test)))
(package
(name cohttp-bench)
(allow_empty)
(synopsis "Benchmarks binaries for Cohttp")
(description
"This package contains some benchmarks for http and cohttp.\nThe benchmarks for the server latency will require wrk2\n(https://github.com/giltene/wrk2) to run. The latency graphs\ncan then be generated with HdrHistogram plotter, also available\nonline at https://hdrhistogram.github.io/HdrHistogram/plotFiles.html.")
(depends
(core
(>= v0.13.0))
core_bench
(eio
(>= 0.12))
(http
(= :version))
(cohttp
(= :version))
(cohttp-eio
(= :version))
(cohttp-lwt-unix
(= :version))
(cohttp-server-lwt-unix
(= :version))
(cohttp-async
(= :version))))
(package
(name cohttp-eio)
(synopsis "CoHTTP implementation with eio backend")
(description
"A CoHTTP server and client implementation based on `eio` library. `cohttp-eio`features a multicore capable HTTP 1.1 server. The library promotes and is built with direct style of coding as opposed to a monadic.")
(depends
(alcotest :with-test)
base-domains
(cohttp
(= :version))
(eio
(>= 0.12))
(eio_main :with-test)
(mdx :with-test)
logs
uri
(tls-eio (and :with-test (>= 0.17.2)))
(mirage-crypto-rng-eio (and :with-test (>= 0.11.2)))
fmt
ptime
(http
(= :version))
(ppx_here :with-test)))