package vif

  1. Overview
  2. Docs
A simple web framework for OCaml 5

Install

dune-project
 Dependency

Authors

Maintainers

Sources

vif-0.0.1.beta1.tbz
sha256=fc6c97461e5f4f770af2653beecc5323e35d114270470df18004be0835048bbf
sha512=ed503ae8f3130705058f994e12520d2da856f53dcd4e85e4e441d9d2db9471d0be4344eb7fe34c254ddfdefddf0169b132522e0091277d29c5ac7d6ffcf6f5fc

Description

Published: 14 Aug 2025

README

νιϝ, a small framework for building a web server from an OCaml script

(nu)(iota)(digamma)

disclaimer: Please note that this is an experimental project. It's also an opportunity to build something that can be satisfying for web development. However, we do not recommend using this project in production.

Vif is a small program that runs an OCaml script and launches a Web server from it. The main idea is to be able to set up a typed Web server as quickly as possible (note that we use hurl, an HTTP client in OCaml)

$ opam pin add -y https://github.com/robur-coop/vif
$ opam pin add -y https://github.com/robur-coop/hurl
$ opam install vif hurl
$ cat >main.ml <<EOF
#require "vif" ;;

open Vif ;;

let default req server () =
  let field = "content-type" in
  let* () = Response.add ~field "text/html; charset=utf-8" in
  let* () = Response.with_string req "Hello World!" in
  Response.respond `OK
;;

let routes =
  let open Vif.Uri in
  let open Vif.Route in
  [ get (rel /?? nil) --> default ]

let () =
  Miou_unix.run @@ fun () ->
  Vif.run routes ()
;;
EOF
$ vif --pid vif.pid main.ml &
$ hurl http://localhost:8080/
HTTP/1.1 200 OK

connection: close
content-length: 12
content-type: text/html

Hello World!

$ kill -SIGINT $(cat vid.pid)

Examples

The examples folder contains several examples of the use of vif. It shows the management of more complex requests (json, multipart-form, etc.) as well as the use of an SQL database with caqti.

Dependencies (20)

  1. tyxml >= "4.6.0"
  2. hmap
  3. multipart_form-miou
  4. conan-database
  5. conan-unix >= "0.0.6"
  6. decompress >= "1.5.0"
  7. jsonm >= "1.0.2"
  8. mirage-crypto-rng-miou-unix
  9. tyre >= "0.5"
  10. httpcats >= "0.1.0"
  11. cmdliner >= "1.3.0"
  12. jsont >= "0.2.0"
  13. bytesrw
  14. fpath >= "0.7.3"
  15. logs >= "0.9.0"
  16. bos >= "0.2.1"
  17. fmt >= "0.11.0"
  18. uri >= "4.4.0"
  19. dune >= "3.0.0"
  20. ocaml >= "5.3.0"

Dev Dependencies (1)

  1. hurl with-test

Used by

None

Conflicts (1)

  1. result < "1.5"
OCaml

Innovation. Community. Security.