PHPackages                             alb/php-inotify-ffi - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. alb/php-inotify-ffi

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

alb/php-inotify-ffi
===================

Pure-PHP inotify bindind (FFI-based)

741PHP

Since Aug 1Pushed 1y ago1 watchersCompare

[ Source](https://github.com/arnaud-lb/php-inotify-ffi)[ Packagist](https://packagist.org/packages/alb/php-inotify-ffi)[ RSS](/packages/alb-php-inotify-ffi/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

php-inotify-ffi
===============

[](#php-inotify-ffi)

php-inotify-ffi is a pure-PHP inotify binding based on FFI.

Experimental / WIP
------------------

[](#experimental--wip)

This is an experimental / WIP package. For a stable inotify binding, use [php-inotify](https://github.com/arnaud-lb/php-inotify).

Goal
----

[](#goal)

The goal of this package is to expose the raw inotify API to PHP, while being memory safe and preventing resource leaks.

Streams
-------

[](#streams)

As the C inotify API returns file descriptors, this package returns PHP streams.

This is useful for the following reasons:

### I/O Polling

[](#io-polling)

The streams can be used with polling mechanisms such as `stream_select()` or event loops such as ReactPHP or AMPHP. It's also possible to make the streams unblocking with `stream_set_blocking()`.

### Resource management

[](#resource-management)

As the inotify file descriptors are owned by PHP streams, they are managed by PHP. This ensures that the file descriptors are eventually closed, which prevents descriptor leaks.

Comparison with the PECL extension
----------------------------------

[](#comparison-with-the-pecl-extension)

The [extension](https://github.com/arnaud-lb/php-inotify) is stable and has the same capabilities.

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity18

Early-stage or recently created project

 Bus Factor1

Top contributor holds 70% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/7fccf26146a280cb4069b86f23fe91eeb3fbae987f25fd328606995080c0379f?d=identicon)[arnaud-lb](/maintainers/arnaud-lb)

---

Top Contributors

[![arnaud-lb](https://avatars.githubusercontent.com/u/365207?v=4)](https://github.com/arnaud-lb "arnaud-lb (7 commits)")[![luzrain](https://avatars.githubusercontent.com/u/25800964?v=4)](https://github.com/luzrain "luzrain (3 commits)")

### Embed Badge

![Health badge](/badges/alb-php-inotify-ffi/health.svg)

```
[![Health](https://phpackages.com/badges/alb-php-inotify-ffi/health.svg)](https://phpackages.com/packages/alb-php-inotify-ffi)
```

###  Alternatives

[selective/config

Config component, strictly typed

19194.8k3](/packages/selective-config)[elfsundae/laravel-hashid-uuid

Shorten UUID encoding for Laravel Hashid.

132.7k](/packages/elfsundae-laravel-hashid-uuid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
