package inotify-eio

  1. Overview
  2. Docs
Inotify backend for eio

Install

Dune Dependency

Authors

Maintainers

Sources

inotify-2.6.tbz
sha256=1d103e7dd32fddd0f1201b2d2f6c5b762548277bc173beef7b072f30ea89ccc4
sha512=660a44e3083f76f0342a6214ba9df4e18b42cc5da833cae3200345e5f0c5c353a3d67dace21ba00d3365d6866a82c90e5b732c9f8e3d9e38687239d6d0fe41f5

Description

Inotify backend for eio

Published: 29 Jul 2024

README

OCaml Inotify bindings

This package contains bindings for Linux's filesystem monitoring interface, inotify.

Installation

The bindings are available via OPAM:

$ opam install inotify

Alternatively, you can do it manually:

# If you want to use lwt_inotify
$ opam install lwt
# If you want to use eio_inotify
$ opam install eio
$ opam install .

Usage

Unix-style interface (findlib package inotify):

let inotify = Inotify.create () in
let watch   = Inotify.add_watch inotify "dir" [Inotify.S_Create] in
print_endline (Inotify.string_of_event (List.hd (Inotify.read inotify)))
(* watch=1 cookie=0 events=CREATE "file" *)

Lwt-style interface (findlib package inotify.lwt):

Lwt_main.run (
  let%lwt inotify = Lwt_inotify.create () in
  let%lwt watch   = Lwt_inotify.add_watch inotify "dir" [Inotify.S_Create] in
  let%lwt event   = Lwt_inotify.read inotify in
  Lwt_io.printl (Inotify.string_of_event event))
  (* watch=1 cookie=0 events=CREATE "file" *)

Eio-style interface (findlib package inotify-eio):

Eio_main.run @@ fun _env ->
  let inotify = Eio_inotify.create () in
  let _watch   = Eio_inotify.add_watch inotify "dir" [Inotify.S_Create] in
  let event   = Eio_inotify.read inotify in
  print_endline (Inotify.string_of_event event)
  (* watch=1 cookie=0 events=CREATE "file" *)

Note that Lwt-style & Eio-style interfaces returns events one-by-one, but the Unix-style one returns them in small batches.

Documentation

The API documentation is available at GitHub pages.

License

LGPL 2.1 with linking exception

Dependencies (7)

  1. iomux >= "0.3"
  2. eio
  3. ocaml >= "5.0"
  4. inotify = version
  5. base-bytes
  6. base-unix
  7. dune >= "3.9"

Dev Dependencies (4)

  1. eio_main with-test
  2. odoc with-doc
  3. ounit2 with-test & >= "2.0"
  4. fileutils with-test & >= "0.4.4"

Used by

None

Conflicts

None

OCaml

Innovation. Community. Security.