File: README.md

package info (click to toggle)
ocaml-inotify 2.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 208 kB
  • sloc: ml: 372; ansic: 76; makefile: 29
file content (69 lines) | stat: -rw-r--r-- 1,985 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
OCaml Inotify bindings [![build](https://github.com/whitequark/ocaml-inotify/actions/workflows/main.yml/badge.svg)](https://github.com/whitequark/ocaml-inotify/actions/workflows/main.yml)
======================

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

  [man]: http://man7.org/linux/man-pages/man7/inotify.7.html

Installation
------------

The bindings are available via [OPAM](https://opam.ocaml.org):

    $ 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`):

``` ocaml
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`):

``` ocaml
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`):

``` ocaml
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](http://whitequark.github.io/ocaml-inotify/).

License
-------

[LGPL 2.1 with linking exception](LICENSE.txt)