packages feed

linux-inotify-0.1.0.0: linux-inotify.cabal

name:                linux-inotify
version:             0.1.0.0
synopsis:            Thinner binding to the Linux Kernel's inotify interface
description:
    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.
license:             BSD3
license-file:        LICENSE
author:              Leon P Smith
maintainer:          leon@melding-monads.com
copyright:           (c) 2013-2014 Leon P Smith
category:            System
build-type:          Simple
cabal-version:       >=1.8

library
  hs-source-dirs:      src
  exposed-modules:     System.Linux.Inotify
  build-depends:       base >= 4 && < 5, unix, bytestring

  ghc-options: -Wall

source-repository head
  type:     git
  location: http://github.com/lpsmith/linux-inotify

source-repository this
  type:     git
  location: http://github.com/lpsmith/linux-inotify
  tag:      v0.1.0.0