A cross-platform file system watcher for Erlang/Elixir applications using native OS backends.
FS is a native file system event listener for Erlang and Elixir applications that monitors file changes across different operating systems. It provides real-time notifications about file system events like creation, modification, and deletion by leveraging OS-specific backends. The library solves the problem of cross-platform file monitoring with optimal performance on each supported platform.
Erlang and Elixir developers who need to monitor file system changes in real-time for applications like build tools, development servers, or file synchronization systems. System administrators and DevOps engineers working with Erlang-based infrastructure monitoring solutions.
Developers choose FS because it provides direct access to native OS file monitoring APIs (fsevent, inotify, inotify-win) with minimal overhead, ensuring maximum performance and reliability. Its simple Erlang/OTP integration and cross-platform consistency make it the preferred choice over building custom file watchers for each operating system.
📁 FS: Windows, Linux, Mac Driver
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages OS-specific backends (fsevent, inotify, inotify-win) for optimal efficiency, ensuring real-time event detection with minimal overhead as highlighted in the cross-platform support.
Provides a consistent Erlang/OTP interface across Mac, Linux, and Windows, simplifying development for multi-OS applications without rewriting monitoring logic.
Built as a standard Erlang/OTP application with supervisor and gen_server patterns, enabling reliable process management and easy integration into existing systems.
Exposes backend-specific event types via the known_events/1 function, allowing developers to tap into platform-specific capabilities for fine-grained control.
Requires manual installation of inotify-tools on Linux, adding an extra setup step that can complicate deployment and introduce compatibility issues.
Offers a low-level interface with little added logic, forcing developers to implement higher-level event handling and filtering from scratch, increasing initial effort.
README provides basic code snippets but lacks comprehensive guides on error handling, performance optimization, or real-world use cases beyond simple examples.