package naboris
Simple http server
Install
Dune Dependency
Authors
Maintainers
Sources
0.1.3.tar.gz
md5=f7d1c959627f93fdcf9fd0c346edb9c9
sha512=344a03d18170368a3fedcc595f6cc103fe47449a77a9923ab58a7d20d8d291edfda624d27bbfd8dc05d9af33a797064efcbeb52a4f9ea57fa862ebd39b97cfa1
README.md.html
README.md
Simple, fast, minimalist web framework for OCaml/ReasonML built on httpaf and lwt.
// ReasonML
let serverConfig: Naboris.ServerConfig.t(unit) = Naboris.ServerConfig.create()
|> Naboris.ServerConfig.setRequestHandler((route, req, res) => switch(Naboris.Route.path(route)) {
| ["hello"] =>
res
|> Naboris.Res.status(200)
|> Naboris.Res.text(req, "Hello world!");
| _ =>
res
|> Naboris.Res.status(404)
|> Naboris.Res.text(req, "Resource not found.");
});
Lwt_main.run(Naboris.listenAndWaitForever(3000, serverConfig));
/* In a browser navigate to http://localhost:3000/hello */
(* OCaml *)
let server_config: unit Naboris.ServerConfig.t = Naboris.ServerConfig.create ()
|> Naboris.ServerConfig.setRequestHandler(fun route req res ->
match (Naboris.Route.path route) with
| ["hello"] ->
res
|> Naboris.Res.text req "Hello world!";
| _ ->
res
|> Naboris.Res.status 404
|> Naboris.Res.text req "Resource not found.";
) in
let _ = Lwt_main.run(Naboris.listenAndWaitForever 3000 server_config)
(* In a browser navigate to http://localhost:3000/hello *)
Contents
Installation
Note
Naboris makes heavy use of Lwt. For better performance it is highly recommended (however optional) to also install conf-libev
which will configure Lwt to run with the libev scheduler. If you are using esy you will have to install conf-libev
using a special package.
conf-libev
also requires that the libev be installed. This can usually be done via your package manager.
brew install libev
or
apt install libev-dev
opam
opam install naboris
esy
"@opam/naboris": "^0.1.3"
dune
(libraries naboris)
Scaffolding
For a basic Reason project
git clone git@github.com:shawn-mcginty/naboris-re-scaffold.git
cd naboris-re-scaffold
npm run install
npm run build
npm run start
For a basic OCaml project
git clone git@github.com:shawn-mcginty/naboris-ml-scaffold.git
cd naboris-ml-scaffold
npm run install
npm run build
npm run start
Development
Any help would be greatly appreciated! 👍
To run tests
esy install
npm run test
Breaking Changes
From | To | Breaking Change |
---|---|---|
0.1.2 |
0.1.3 |
secret argument added to all session configuration APIs. |
0.1.0 |
0.1.1 |
ServerConfig.setSessionGetter changed to ServerConfig.setSessionConfig which also allows ~maxAge and ~sidKey to be passed in optionally. |
0.1.0 |
0.1.1 |
All RequestHandler.t and Middleware.t now return Lwt.t(Res.t) instead of Lwt.t(unit) |
0.1.0 |
0.1.1 |
Res.reportError now taxes exn as the first argument to match more closely the rest of the Res API. |
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>