package dream

  1. Overview
  2. Docs
Tidy, feature-complete Web framework

Install

Authors

Maintainers

Sources

dream-1.0.0-alpha1.tar.gz
md5=b8ad7f3e30f3e88e5451d92e42b49ce4

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.

Dev Dependencies (3)

  1. ppx_expect with-test
  2. bisect_ppx dev & >= "2.5.0"
  3. alcotest with-test

Used by (5)

  1. dream-cli < "0.2.0"
  2. dream-encoding < "0.2.0"
  3. dream-livereload < "0.2.0"
  4. hyper
  5. u2f