delta: A library for detecting file changes

[ data, lgpl, library, program ] [ Propose Tags ]

Delta is a library for detecting file changes in any given directory. The package is written using the sodium FRP library but it also provides a callback based API.

File changes on OS X are based on the FSEvents API that is also used by TimeMachine. On other operating systems the library currently uses recursive descents in directories. I will include inotify for Linux. If someone would like to have a non-polling based API for windows or BSD, I would really like it if anyone would contribute.

The project also contains an executable, delta-run, which allows you to run arbitrary shell commands when a file in a directory (recursively) changes.

$> delta-run --help
Usage: delta-run [-i|--interval INTERVAL] [-v|--verbose] FILE CMD
Available options:
-h,--help                Show this help text
-i,--interval INTERVAL   Run at most every n seconds
-v,--verbose             Print extra output
FILE                     The directory that is watched
CMD                      The command to run

For example you could use delta-run to rebuild your project everytime the source changes like this:

delta-run ./src "cabal build"
Dependencies base (>=4.6 && <4.9), containers (>=0.5), delta, directory (>=1.2), filepath (>=1.3), hfsevents (>=0.1.5), optparse-applicative (>=0.10), process (>=1.2), sodium (>=0.11), time (>=1.5) [details]
License LGPL-3.0-only
Author Christof Schramm
Revised Revision 2 made by muzzle at Thu Jul 23 21:07:40 UTC 2015
Category Data
Home page
Source repo head: git clone
Uploaded by muzzle at Thu Jul 23 17:23:29 UTC 2015
Distributions NixOS:
Executables delta-run, delta-cli
Downloads 2280 total (11 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-07-23 [all 1 reports]
Hackage Matrix CI





Build in FSEvents support (OS X)


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees