linux-inotify: Thinner binding to the Linux Kernel's inotify interface

[ bsd3, library, system ] [ Propose Tags ]

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.0.2 or later, whereas hinotify works with many versions of GHC 6. I have no plans to fix this.

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.2.0.0, 0.2.0.1, 0.3.0.0, 0.3.0.1, 0.3.0.2 (info)
Dependencies base (>=4 && <5), bytestring, unix [details]
License BSD-3-Clause
Copyright (c) 2013-2014 Leon P Smith
Author Leon P Smith
Maintainer leon@melding-monads.com
Category System
Source repo head: git clone http://github.com/lpsmith/linux-inotify
this: git clone http://github.com/lpsmith/linux-inotify(tag v0.1.0.0)
Uploaded by LeonSmith at 2014-01-27T00:17:47Z
Distributions NixOS:0.3.0.2
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 4185 total (27 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Successful builds reported [all 1 reports]