Uwt provides OCaml bindings for libuv - on top of lwt.
-
Requests are translated to lwt-threads.
-
Callbacks that are called continually are most of the time not translated to the usual lwt semantic.
-
naming conventions mirror the conventions of libuv, so you can easily consult the official libuv manual. Only the differences are explained inside
uwt.mli
-
Uwt is not compatible with
lwt.unix
. It's not a furtherLwt_engine
in addition toselect
andlibev
. However, the findlib packageuwt.ext
provides alternatives to the higher level modules oflwt.unix
with a nearly identic interface (Uwt_io, Uwt_process, Uwt_log). You can also open the moduleUwt_compat
(packageuwt.compat
) that provides aliases with module names as found in lwt (e.g.Lwt_main
instead ofUwt.Main
). This is necessary, if you want to use the camlp4 syntax extension of lwt. -
Uwt is not thread safe. All uwt functions should be called from your main thread.
$ opam install uwt
# or for the latest development version
$ opam pin add uwt --dev-repo
Dependencies:
- OCaml 4.02.1 or later
- lwt 2.6.0 or later
- libuv 1.8 or later
Build dependencies:
- pkg-config / pkgconf
- findlib
- omake
- cppo
- ppx_deriving (test only)
- ppx_import (test only)
- ounit (test only)
- autoconf (repo pinning only)
$ omake all
$ omake install
libuv will be compiled locally, if is not already installed on your system. You can also explicity enforce one option:
$ omake all BUILD_LIBUV=true
# or
$ omake all BUILD_LIBUV=false