Skip to content

Commit af7b2b2

Browse files
committed
Dream: easy-to-use Web framework, alpha 5
1 parent 98261c9 commit af7b2b2

File tree

3 files changed

+197
-0
lines changed
  • packages
    • dream-httpaf/dream-httpaf.1.0.0~alpha2
    • dream/dream.1.0.0~alpha5
    • hyper/hyper.1.0.0~alpha2

3 files changed

+197
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
opam-version: "2.0"
2+
3+
synopsis: "Internal: shared http/af stack for Dream (server) and Hyper (client)"
4+
description: "This package does not have a stable API."
5+
6+
license: "MIT"
7+
homepage: "https://github.com/aantron/dream"
8+
doc: "https://aantron.github.io/dream"
9+
bug-reports: "https://github.com/aantron/dream/issues"
10+
dev-repo: "git+https://github.com/aantron/dream.git"
11+
12+
author: "Anton Bachin <[email protected]>"
13+
maintainer: "Anton Bachin <[email protected]>"
14+
15+
depends: [
16+
"dream-pure"
17+
"dune" {>= "2.7.0"} # --instrument-with.
18+
"lwt"
19+
"lwt_ppx" {>= "1.2.2"}
20+
"lwt_ssl"
21+
"ocaml" {>= "4.08.0"}
22+
"ssl" {>= "0.5.8"} # Ssl.get_negotiated_alpn_protocol.
23+
24+
# Currently vendored.
25+
# "gluten"
26+
# "gluten-lwt-unix"
27+
# "httpaf"
28+
# "httpaf-lwt-unix"
29+
# "h2"
30+
# "h2-lwt-unix"
31+
# "hpack"
32+
# "websocketaf"
33+
34+
# Dependencies of vendored packages.
35+
"angstrom" {>= "0.14.0"}
36+
"base64" {>= "3.0.0"}
37+
"bigstringaf" {>= "0.5.0"} # h2.
38+
"digestif" {>= "0.7.2"} # websocket/af, sha1, default implementation.
39+
"faraday" {>= "0.6.1"}
40+
"faraday-lwt-unix"
41+
"ke" {>= "0.5"} # Gluten.
42+
"lwt_ssl" {>= "1.2.0"} # Gluten.
43+
"psq" # h2.
44+
"result" # websocket/af.
45+
]
46+
47+
build: [
48+
["dune" "build" "-p" name "-j" jobs]
49+
]
50+
51+
url {
52+
src: "https://github.com/aantron/dream/releases/download/1.0.0-alpha5/dream-1.0.0-alpha5.tar.gz"
53+
checksum: "md5=de6f6908ae899c9e85f2c751a0263932"
54+
}
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
opam-version: "2.0"
2+
3+
synopsis: "Tidy, feature-complete Web framework"
4+
tags: ["http" "web" "framework" "websocket" "graphql" "server" "http2" "tls"]
5+
6+
description: """
7+
Dream is a feature-complete Web framework with a simple programming
8+
model and no boilerplate. It provides only two data types, request and
9+
response.
10+
11+
Almost everything else is either a built-in OCaml type, or an
12+
abbreviation for a bare function. For example, a Web app, known in
13+
Dream as a handler, is just an ordinary function from requests to
14+
responses. And a middleware is then just a function from handlers to
15+
handlers.
16+
17+
Within this model, Dream adds:
18+
19+
- Session management with pluggable back ends.
20+
- A fully composable router.
21+
- Support for HTTP/1.1, HTTP/2, and HTTPS.
22+
- WebSockets.
23+
- GraphQL, including subscriptions and a built-in GraphiQL editor.
24+
- SQL connection pool helpers.
25+
- Server-side HTML templates.
26+
- Automatic secure handling of cookies and forms.
27+
- Unified, internationalization-friendly error handling.
28+
- A neat log, and OCaml runtime configuration.
29+
- Helpers for Web formats, such as Base64url, and a modern cipher.
30+
31+
Because of the simple programming model, everything is optional and
32+
composable. It is trivailly possible to strip Dream down to just a
33+
bare driver of the various HTTP protocols.
34+
35+
Dream is presented as a single module, whose API is documented on one
36+
page. In addition, Dream comes with a large number of examples.
37+
Security topics are introduced throughout, wherever they are
38+
applicable."""
39+
40+
license: "MIT"
41+
homepage: "https://github.com/aantron/dream"
42+
doc: "https://aantron.github.io/dream"
43+
bug-reports: "https://github.com/aantron/dream/issues"
44+
dev-repo: "git+https://github.com/aantron/dream.git"
45+
46+
author: "Anton Bachin <[email protected]>"
47+
maintainer: "Anton Bachin <[email protected]>"
48+
49+
depends: [
50+
"base-unix"
51+
"bigarray-compat"
52+
"camlp-streams"
53+
"caqti" {>= "1.8.0"} # Infix operators.
54+
"caqti-lwt"
55+
"conf-libev" {os != "win32"}
56+
"cstruct" {>= "6.0.0"}
57+
"dream-httpaf" {>= "1.0.0~alpha2"}
58+
"dream-pure" {>= "1.0.0~alpha2"}
59+
"dune" {>= "2.7.0"} # --instrument-with.
60+
"fmt" {>= "0.8.7"} # `Italic.
61+
"graphql_parser"
62+
"graphql-lwt"
63+
"lwt"
64+
"lwt_ppx" {>= "1.2.2"}
65+
"lwt_ssl"
66+
"logs" {>= "0.5.0"}
67+
"magic-mime"
68+
"mirage-clock" {>= "3.0.0"} # now_d_ps : unit -> int * int64.
69+
"mirage-crypto" {>= "0.8.1"} # AES-256-GCM.
70+
"mirage-crypto-rng"
71+
"mirage-crypto-rng-lwt"
72+
"multipart_form" {>= "0.4.0"}
73+
"multipart_form-lwt"
74+
"ocaml" {>= "4.08.0"}
75+
"ptime" {>= "0.8.1"} # Ptime.v.
76+
"ssl" {>= "0.5.8"} # Ssl.get_negotiated_alpn_protocol.
77+
"uri" {>= "4.2.0"}
78+
"yojson" # ...
79+
80+
# Testing, development.
81+
"alcotest" {with-test}
82+
"bisect_ppx" {with-test & >= "2.5.0"} # --instrument-with.
83+
"caqti-driver-postgresql" {with-test}
84+
"caqti-driver-sqlite3" {with-test}
85+
"crunch" {with-test}
86+
"js_of_ocaml" {with-test}
87+
"js_of_ocaml-ppx" {with-test}
88+
"lambdasoup" {with-test}
89+
"ppx_expect" {with-test & >= "v0.15.0"} # Formatting changes.
90+
"ppx_yojson_conv" {with-test}
91+
"reason" {with-test}
92+
"tyxml" {with-test & >= "4.5.0"}
93+
94+
# Blocked until https://github.com/ocsigen/tyxml/pull/312.
95+
# "tyxml-jsx" {with-test & >= "4.5.0"}
96+
# "tyxml-ppx" {with-test & >= "4.5.0"}
97+
]
98+
99+
build: [
100+
["dune" "build" "-p" name "-j" jobs]
101+
]
102+
103+
url {
104+
src: "https://github.com/aantron/dream/releases/download/1.0.0-alpha5/dream-1.0.0-alpha5.tar.gz"
105+
checksum: "md5=de6f6908ae899c9e85f2c751a0263932"
106+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
opam-version: "2.0"
2+
3+
synopsis: "Web client with HTTP/1, HTTP/2, TLS, and WebSocket support"
4+
tags: ["http" "web" "client" "websocket" "http2" "tls" "dream"]
5+
6+
license: "MIT"
7+
homepage: "https://github.com/aantron/hyper"
8+
doc: "https://aantron.github.io/hyper"
9+
bug-reports: "https://github.com/aantron/hyper/issues"
10+
dev-repo: "git+https://github.com/aantron/hyper.git"
11+
12+
author: "Anton Bachin <[email protected]>"
13+
maintainer: "Anton Bachin <[email protected]>"
14+
15+
depends: [
16+
"dream-httpaf" {>= "1.0.0~alpha2"}
17+
"dream-pure"
18+
"dune" {>= "2.7.0"}
19+
"lwt_ppx"
20+
"mirage-crypto-rng"
21+
"mirage-crypto-rng-lwt"
22+
"ocaml" {>= "4.08.0"}
23+
"uri"
24+
25+
"bisect_ppx" {with-test & >= "2.5.0"} # --instrument-with.
26+
"dream" {with-test}
27+
"ppx_expect" {with-test}
28+
]
29+
30+
build: [
31+
["dune" "build" "-p" name "-j" jobs]
32+
]
33+
34+
url {
35+
src: "https://github.com/aantron/hyper/archive/refs/tags/1.0.0-alpha2.tar.gz"
36+
checksum: "md5=214f88044d1589314ba4d2bb248a9633"
37+
}

0 commit comments

Comments
 (0)