The linux-inotify package
This is a binding for GHC 7 to the Linux Kernel's inotify interface, which provides notifications to applications regarding file system events, such as file creation, modification, deletion, etc.
Some of the advantages over hinotify are:
1. linux-inotify provides a plain getEvent operator that blocks, instead of implementing a callback API.
2. linux-inotify avoids most of GHC's standard IO handling code, relying on plain system calls with minimal overhead in Haskell-land. (However, it still does make good use of GHC's IO manager via nonblocking inotify sockets and threadWaitRead, so getEvent is still efficient.)
3. linux-inotify does not call forkIO, which means less context switching and scheduling overhead, especially in contexts where hinotify's particular event router isn't a very good fit for your application; e.g. you are implementing a following log file processor.
Some of the disadvantages compared to hinotify are:
1. Due to the use of inotify_init1, linux-inotify currently requires linux 2.6.27 or later, even though inotify support debuted in linux 2.6.13. You can check which version of linux is on a machine via uname -a. I would like to fix this at some point, but it isn't a personal priority.
2. linux-inotify requires GHC 7.8.1 or later, whereas hinotify works with many versions of GHC 6. I have no plans to fix this.
|Versions||0.1.0.0, 0.1.0.1, 0.2.0.0, 0.2.0.1, 0.3.0.0, 0.3.0.1 (info)|
|Dependencies||base (>=4.7 && <5), bytestring (>=0.10.4), hashable (>=1.1.2), unix [details]|
|Copyright||(c) 2013-2015 Leon P Smith|
|Author||Leon P Smith|
|Source repository||head: git clone http://github.com/lpsmith/linux-inotify|
this: git clone http://github.com/lpsmith/linux-inotify(tag v0.3.0.1)
|Uploaded||Fri Nov 20 20:23:15 UTC 2015 by LeonSmith|
|Downloads||751 total (30 in last 30 days)|
|Status||Docs available [build log]|
Last success reported on 2015-11-20 [all 1 reports]
- linux-inotify-0.3.0.1.tar.gz [browse] (Cabal source package)
- Package description (included in the package)
For package maintainers and hackage trustees