opam-version: "2.0" synopsis: "Tidy, feature-complete Web framework" tags: ["http" "web" "framework" "websocket" "graphql" "server" "http2" "tls"] 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 trivially 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.""" license: "MIT" homepage: "https://github.com/camlworks/dream" doc: "https://camlworks.github.io/dream" bug-reports: "https://github.com/camlworks/dream/issues" dev-repo: "git+https://github.com/camlworks/dream.git" maintainer: ["Sebastian Willenbrink " "Yawar Amin " "Anton Bachin "] depends: [ "base-unix" "bigarray-compat" "camlp-streams" "caqti" {>= "3.0.0"} "caqti-lwt" {>= "3.0.0"} ("conf-libev" {os != "win32"} | "ocaml" {os = "win32"}) "cstruct" {>= "6.0.0"} "digestif" {>= "0.7"} # to_raw_string. "dream-httpaf" {= version} "dream-pure" {= version} "dune" {>= "2.7.0"} # --instrument-with. "fmt" {>= "0.8.7"} # `Italic. "graphql_parser" "graphql-lwt" "lambdasoup" {>= "0.6.1"} "lwt" "lwt_ppx" {>= "1.2.2"} "lwt_ssl" "logs" {>= "0.5.0"} "magic-mime" "markup" {>= "1.0.2"} "mirage-ptime" {>= "5.0.0"} # now_d_ps : unit -> int * int64. "mirage-crypto" {>= "1.2.0"} "mirage-crypto-rng" {>= "1.2.0"} "multipart_form" {>= "0.4.0"} "multipart_form-lwt" "ocaml" {>= "4.08.0"} "ptime" {>= "0.8.1"} # Ptime.v. "ssl" {>= "0.5.8"} # Ssl.get_negotiated_alpn_protocol. "uri" {>= "4.2.0"} "yojson" # ... # Testing, development. "alcotest" {with-test} "bisect_ppx" {with-test & >= "2.5.0"} # --instrument-with. "caqti-driver-postgresql" {with-test} "caqti-driver-sqlite3" {with-test} "crunch" {with-test} "html_of_jsx" {with-test} "js_of_ocaml" {with-test} "js_of_ocaml-ppx" {with-test} "ppx_expect" {with-test & >= "v0.15.0" & < "v0.18.0"} "ppx_yojson_conv" {with-test} "reason" {with-test} "tyxml" {with-test & >= "4.5.0"} "tyxml-jsx" {with-test} ] build: [ ["dune" "build" "-p" name "-j" jobs] ] authors: "Anton Bachin " url { src: "https://github.com/camlworks/dream/releases/download/1.0.0/dream-1.0.0.tbz" checksum: [ "sha256=beb367e9abe25097c6c43c466e6ed9ac324923db0acdccdace8365f5210f856e" "sha512=d4482208b3955a60192ca60f69eae1af7e1cf49dc023c495ce94cc9f96c8fffe69dcc77f8004ca7a90b09f1f4b1aa33623b740169af9107264ec9db93592dbff" ] } x-commit-hash: "eeb2bf5b7b299a47ea74f219d97c5dedf1b0e801"