package dream
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=a143b3694d67c0089ea16ce4585971d6333f05001abcadcede6696b06ca6af10
md5=20aaa93b13c210324e9dcceeba3c3b21
Description
Dream is a feature-complete Web framework with a simple programming model and no boilerplate. It provides only two data types, request and response.
Almost everything else is either a built-in OCaml type, or an abbreviation for a bare function. For example, a Web app, known in Dream as a handler, is just an ordinary function from requests to responses. And a middleware is then just a function from handlers to handlers.
Within this model, Dream adds:
- Session management with pluggable back ends.
- A fully composable router.
- Support for HTTP/1.1, HTTP/2, and HTTPS.
- WebSockets.
- GraphQL, including subscriptions and a built-in GraphiQL editor.
- SQL connection pool helpers.
- Server-side HTML templates.
- Automatic secure handling of cookies and forms.
- Unified, internationalization-friendly error handling.
- A neat log, and OCaml runtime configuration.
- Helpers for Web formats, such as Base64url, and a modern cipher.
Because of the simple programming model, everything is optional and composable. It is trivailly possible to strip Dream down to just a bare driver of the various HTTP protocols.
Dream is presented as a single module, whose API is documented on one page. In addition, Dream comes with a large number of examples. Security topics are introduced throughout, wherever they are applicable.
Dependencies (28)
- yojson
-
uri
>= "4.2.0" -
ssl
>= "0.5.8" -
ptime
>= "0.8.1" -
ocaml
>= "4.08.0" - multipart_form-lwt
-
multipart_form
>= "0.4.0" -
mirage-crypto-rng
>= "0.8.0" & < "0.11.0" -
mirage-crypto
>= "0.8.1" & < "1.0.0" -
mirage-clock
>= "3.0.0" - magic-mime
-
logs
>= "0.5.0" - lwt_ssl
-
lwt_ppx
>= "1.2.2" - lwt
- graphql-lwt
- graphql_parser
-
fmt
>= "0.8.7" -
dune
>= "2.7.0" -
dream-pure
>= "1.0.0~alpha2" -
dream-httpaf
< "1.0.0~alpha2" -
cstruct
>= "6.0.0" -
conf-libev
os != "win32" - caqti-lwt
-
caqti
>= "1.6.0" & < "2.0.0~" - camlp-streams
- bigarray-compat
- base-unix
Dev Dependencies (12)
-
tyxml-ppx
with-test & >= "4.5.0" -
tyxml-jsx
with-test & >= "4.5.0" -
tyxml
with-test & >= "4.5.0" -
reason
with-test -
ppx_yojson_conv
with-test -
ppx_expect
with-test -
lambdasoup
with-test -
crunch
with-test -
caqti-driver-sqlite3
with-test -
caqti-driver-postgresql
with-test -
bisect_ppx
with-test & >= "2.5.0" -
alcotest
with-test
Used by (16)
- dream-accept
-
dream-cli
>= "0.2.0" -
dream-encoding
>= "0.2.0" -
dream-html
< "3.9.5" - dream-htmx
-
dream-livereload
>= "0.2.0" -
dream-serve
>= "1.0.1" - FPauth
- FPauth-core
- FPauth-responses
- FPauth-strategies
- graphql_jsoo_client
- hyper
-
lambdapi
>= "2.4.0" - ppx_dream_eml
- universal-portal
Conflicts
None