Easy-to-use, feature-complete Web framework without boilerplate.
Note: the project is in a pre-alpha state; currently writing examples.
Every part of the API is arranged to be easy to understand, use, and remember.
Dream sticks to base OCaml types like
list, introducing only a
few types of its own — and some of those are just abbreviations
for bare functions!
The neat interface is not a limitation. Everything is still configurable by a large number of optional arguments. Where necessary, Dream exposes the lower-level machinery that it is composed from. For example, the basic body and WebSocket readers return strings, but you can also do zero-copy streaming.
You can even run Dream as a quite bare abstraction over its underlying set of HTTP libraries, where it acts only as minimal glue code between their slightly different interfaces, and takes care of horridness like ALPN.
Several of the tutorials and examples are available in Reason syntax, with more to come over time!
There are additional Examples, covering various HTTP scenarios.
See the API documentation.
TODO opam release, esy instructions, quick-start script.
opam install dream
Dream uses several submodules, so be sure to clone with
git clone https://github.com/aantron/dream.git --recursive
Dream is based on work by the authors and contributors of its many dependencies and their transitive dependencies. There are, however, several influences that cannot be discovered directly: