These are OCaml bindings to Nodejs. I'm currently rewriting everything from a previous iteration and so things might get outdated quickly.
Included are three levels of abstraction,
Nodejs
Nodejs_high_level
Nodejs_high_level_lwt
they correspond to the findlib packages:
nodejs
nodejs.high_level
nodejs.high_level_lwt
You will probably be using this library at the 2/3 level.
All can be compiled and run with these steps:
$ ocamlfind ocamlc -g -package nodejs.high_level_lwt -linkpkg code.ml
$ js_of_ocaml --debug-info --no-inline --pretty a.out -o T.js
$ node T.js
Using Lwt:
open Lwt.Infix
let () =
(Nodejs_high_level_lwt.Fs.read_file (Nodejs_high_level.__filename ())
>>= fun (err, result) -> result#to_string |> print_endline |> Lwt.return
>|= fun () -> print_endline "Finished Program and Ordered Async")
|> Lwt.ignore_result
Plain server:
open Nodejs_high_level
let () =
let s =
new Net.server (fun client ->
client#write "Welcome to the Matrix";
print_endline "Client connected")
in
s#listen 8124 (fun () -> print_endline "Created a server")