Page
Library
Module
Module type
Parameter
Class
Class type
Source
Sinatra like web toolkit for OCaml based on cohttp & lwt
Rock
.The latest stable version is available on opam
$ opam install opium
If you'd like to live on the bleeding edge (which is sometimes more stable than stable)
$ opam pin add opium --dev-repo
All examples are built once the necessary dependencies are installed. $ dune build @examples
will compile all examples. The binaries are located in _build/default/examples/
Here's a simple hello world example to get your feet wet:
$ cat hello_world.ml
#include "examples/hello_world.ml"
compile with:
$ ocamlbuild -pkg opium.unix hello_world.native
and then call
./hello_world.native &
curl http://localhost:3000/person/john_doe/42
You should see a JSON message.
The two fundamental building blocks of opium are:
Rock.Request.t -> Rock.Response.t Lwt.t
Rock.Handler.t -> Rock.Handler.t
Almost every all of opium's functionality is assembled through various middleware. For example: debugging, routing, serving static files, etc. Creating middleware is usually the most natural way to extend an opium app.
Here's how you'd create a simple middleware turning away everyone's favourite browser.
#include "examples/middleware_ua.ml"
Compile with:
$ ocamlbuild -pkg opium.unix middleware_ua.native
Here we also use the ability of Opium to generate a cmdliner term to run your app. Run your executable with the -h
to see the options that are available to you. For example:
# run in debug mode on port 9000
$ ./middleware_ua.native -p 9000 -d