dreamversion

Tidy, feature-complete Web framework

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.

Tags http web framework websocket graphql server http2 tls
AuthorAnton Bachin <antonbachin@yahoo.com>
LicenseMIT
Published
Homepagehttps://github.com/aantron/dream
Issue Trackerhttps://github.com/aantron/dream/issues
MaintainerAnton Bachin <antonbachin@yahoo.com>
Dependencies
Source [http] https://github.com/aantron/dream/releases/download/1.0.0-alpha5/dream-1.0.0-alpha5.tar.gz
sha256=05bc7f6aff94893c151f3a5bcdee3328920c69b3763fac49ba27348dc7745901
md5=de6f6908ae899c9e85f2c751a0263932
Edithttps://github.com/ocaml/opam-repository/tree/master/packages/dream/dream.1.0.0~alpha5/opam