30 open-source projects similar to fsnotify/fsnotify, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Fsnotify alternative.
Chokidar is a cross-platform file system monitoring library designed to provide a unified interface for tracking disk activity. It functions as a foundational utility for Node.js development environments, enabling applications to detect file additions, modifications, and deletions across diverse operating systems through a consistent event stream. The library distinguishes itself by normalizing inconsistent event signatures from various operating system kernels and implementing robust event debouncing logic. By buffering rapid sequences of file system events and waiting for a quiet period, it
libuv is a cross-platform asynchronous I/O library that provides an abstraction layer for event-driven networking, filesystem operations, and system signals. It utilizes a non-blocking event loop to coordinate asynchronous tasks and I/O events across different operating systems. The project features a unified interface for managing TCP, UDP, and DNS resolution, alongside an inter-process communication layer for sharing sockets via named pipes and Unix domain sockets. To prevent blocking the main execution loop, it includes a multi-platform thread pool for offloading computationally expensive
fswatch is a cross-platform file change monitor that watches files and directories for modifications using the native event API of each operating system. It functions as a multi-backend file watcher library that selects from platform-specific backends such as inotify, kqueue, and FSEvents, with a polling fallback when no native API is available. The tool groups multiple file changes into a single event batch and triggers one command per batch, while also executing user-specified commands each time monitored files or directories are modified. The project applies include, exclude, event-type, a
Syncthing is a decentralized file synchronization engine that maintains consistent data states across multiple devices through peer-to-peer mesh networking. It operates as a background daemon that automatically replicates file creations, modifications, and deletions between trusted nodes without requiring central servers. By utilizing content-addressable block indexing and block-level delta synchronization, the system identifies and transfers only the modified segments of files, ensuring efficient data propagation across heterogeneous environments. The project distinguishes itself through a s
Gulp is a JavaScript build automation tool and Node.js task runner designed to coordinate the execution of development tasks. It operates as a streaming build system that transforms source files into production assets through a series of programmable pipelines. The system functions as a file watcher and task orchestrator, monitoring directories for modifications to automatically trigger specific build tasks. It organizes these units of work into sequential or parallel execution paths to streamline development workflows. The toolkit manages asset pipelines by reading files via pattern matchin
fswatch is a cross-platform file change monitor and event automation tool. It tracks file system modifications across different operating systems using native kernel event APIs or a portable polling fallback. The project implements specific wrappers for Linux systems using inotify and fanotify, as well as a watcher for BSD and macOS using kqueue. It translates these platform-specific APIs into a unified event format to provide consistent monitoring behavior. The tool allows for the automatic execution of external programs or scripts in response to detected changes. It includes capabilities f
SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, xDC replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. Enterprise version is at seaweedfs.com.
Afero is a Go library that provides a unified filesystem abstraction, allowing applications to interact with local disk, in-memory storage, cloud services, archives, and remote systems through a single, consistent interface. At its core, it defines a standard interface that all filesystem backends implement, enabling developers to swap storage implementations without changing application code. The library distinguishes itself through its composable architecture, which includes layered filesystem composition for creating cached, sandboxed, or restricted storage views. It offers a copy-on-write
GitUI is a terminal-based interface for managing Git repositories, providing an interactive environment for executing version control operations, inspecting commit logs, and navigating file hierarchies. It functions as a keyboard-driven client that allows users to stage changes, manage branches, and review project history directly from the command line. The application distinguishes itself through a focus on interface responsiveness and user-defined workflows. It utilizes background thread offloading and asynchronous data caching to maintain performance during complex operations, while offeri
Vector is a high-performance observability data pipeline designed to collect, transform, and route logs, metrics, and traces across distributed infrastructure. It functions as a modular engine that decouples data ingestion from processing and transmission, utilizing a component-based architecture to connect diverse sources to multiple destinations. The project distinguishes itself through a focus on reliability and flow control. It implements backpressure-aware data movement to prevent data loss during traffic spikes and utilizes disk-backed event buffering to ensure durability during network
F Prime is a component-based framework designed for the development and deployment of embedded and spaceflight software. It provides a modular architecture that decouples software logic from communication interfaces, allowing developers to define system structures through a domain-specific modeling language. This model-based approach enables automated code generation, ensuring consistency across complex system topologies while maintaining strict interface contracts between software modules. The framework distinguishes itself through its integrated build system and ground data operations suite
Libevent is a cross-platform library that provides a mechanism for executing callback functions when specific events occur on file descriptors, signals, or timers. It functions as a network event loop framework, enabling the development of applications that manage concurrent network connections and non-blocking input and output operations within a single execution context. The library distinguishes itself by providing a portable abstraction layer that automatically selects the most efficient system-level event notification mechanism available on the host operating system. It includes thread-s
Watchman is a filesystem change monitor and recursive directory watcher that operates as a background service to track file modifications in real time. It functions as an event-driven file trigger and state query engine, allowing users to retrieve directory snapshots and lists of changed files since a previous check. The project provides tooling for incremental builds by identifying exactly which files have changed to compile only necessary project components. It is designed for large scale directory watching, monitoring massive file trees while executing external commands or scripts automati
Syncthing Android is a mobile application and service wrapper that enables decentralized, peer-to-peer file synchronization on the Android platform. It functions as a distributed data sync tool that mirrors folders across multiple devices without the need for a central cloud server. The project provides a mobile interface to manage a synchronization instance, utilizing a service-wrapper architecture to handle the lifecycle and configuration of the underlying synchronization binary. It ensures secure data exchange through TLS encryption, certificate-based identity verification, and password-pr
Muduo is a C++11 event-driven network library and framework designed for building high-concurrency Linux servers. It provides a toolkit for implementing scalable network services and socket communication using non-blocking I/O and asynchronous event processing. The framework implements a multi-threaded TCP server architecture that distributes connection handling across multiple CPU threads to maximize server throughput. This is achieved through a one-loop-per-thread model and a reactor pattern implementation, which dispatch network events from a central demultiplexer to registered handler fun
Mutagen is a cross-platform file synchronization engine and development environment orchestrator. It provides real-time bidirectional file synchronization between local machines, remote servers, and Docker containers, often utilizing SSH for transport. The tool functions as a high-performance alternative to Docker bind mounts by mirroring files between a local host and a running container. It also operates as a network port forwarding utility, routing TCP traffic and Unix domain sockets between local and remote environments via SSH. Its capability surface includes filesystem event monitoring
entr is a command-line tool and shell command orchestrator that executes arbitrary terminal commands automatically whenever monitored files are modified. It serves as a Unix file system monitor that maps filesystem events to the execution of user-defined shell commands. The utility functions as a development workflow automator by restarting background processes and refreshing console output to provide immediate feedback during coding. It can terminate and restart long-running services when configuration or source code is updated. The project covers automated task execution and continuous int
Bacon is a background job runner and text-based user interface test dashboard designed for tracking code health and isolating failing tests. It functions as a developer workflow automator and file system watcher that triggers shell commands and verification tasks automatically when source files are modified. The tool allows for the definition of custom checkers and keyboard shortcuts to accelerate the iteration and debugging process. It provides a focused display for monitoring project health by tracking compilation errors and restricting active jobs to only those tests that have failed. The
Wireit is a build system orchestrator and npm script task runner that manages complex dependencies between scripts. It functions as a development workflow automator by tracking input files and dependencies to skip redundant executions and optimize total build time. The project features a content-addressable build cache that saves generated files to bypass expensive computations. It includes a file watcher that monitors project changes and automatically triggers only the affected scripts within a dependency graph. The tool covers task orchestration through parallel script execution, backgroun
Guard is a command-line file watcher that monitors the filesystem from the terminal and automatically executes user-defined tasks when files are modified, added, or deleted. It functions as a file change watcher and test runner that triggers test suite execution immediately when source or spec files are saved, providing instant feedback during development. The tool is configured through a Ruby-based domain-specific language in a Guardfile, and it can send visual desktop notifications when watched file actions complete or fail. The project distinguishes itself through a plugin-based extension
This project is a Model Context Protocol server designed to manage structured software development workflows. It functions as a project management tool that enforces a sequential pipeline from requirements and design to implementation, ensuring that AI agents and developers follow a specific documentation and coding process. The system differentiates itself through a state-machine workflow enforcement mechanism that blocks progress between development phases until specific validation criteria are met and mandatory human approvals are granted. It includes a structured documentation generator t
Watchexec is a command-line task runner and file system change trigger that automates developer workflows by executing scripts or programs when files in a directory are modified. It functions as a process lifecycle manager, ensuring that triggered child processes and process groups are managed and restarted cleanly. The tool provides path filtering to restrict monitoring to specific extensions or directories and utilizes debouncing to group rapid bursts of file system notifications into a single execution. It supports propagating the list of modified files to the executed command via standard
MoviePilot is a self-hosted media orchestrator and NAS media library automator. It coordinates workflows between downloaders, metadata scrapers, and file systems to automate the discovery, downloading, renaming, and organization of movie and television content. The system functions as an LLM media management agent, allowing users to control subscriptions, searches, and file organization through conversational text commands. It also acts as a Model Context Protocol server, exposing internal media management tools via a standardized interface for external AI clients and agents. The project inc
Air is a live reload tool and build automation utility for Go applications. It functions as a hot reloading orchestrator that monitors source files for changes to automatically recompile and restart application binaries. The tool distinguishes itself by offering a managed build and execution pipeline, allowing for custom build commands, environment variable injection, and platform-specific build overrides based on the host operating system. It further synchronizes the development cycle by using a proxy to signal web browsers to reload automatically when static files or source code are modifie
Gin is a hot reloading utility and live reloader for Go web applications. It functions as an HTTP proxy development tool that monitors source files for changes and automatically recompiles and restarts the web server to eliminate manual server restarts. The tool manages the development workflow by tracking file-system events and coordinating the sequence of recompiling source code. It handles child-process management for the Go compiler and the application binary, routing incoming traffic to the active server instance and refreshing the process upon the next request following a successful bui
log.io is a real-time log monitoring system designed for streaming and visualizing system logs in a web browser as they are generated. It consists of a TCP log aggregator that collects formatted messages from remote sources and a file-based log streamer that monitors local files for changes. The system provides a web-based log viewer capable of ad-hoc visualization, allowing users to route specific active log streams to different screens for targeted monitoring. This is supported by a centralized message broker that redistributes incoming logs to web clients. The platform covers centralized
This project provides a collection of type-safe wrappers designed to bridge web-based applications with native mobile hardware and system services. It functions as a cross-platform framework that normalizes disparate native plugin behaviors into a unified interface, allowing developers to access device sensors and system capabilities consistently across multiple mobile operating systems. The framework distinguishes itself by wrapping asynchronous native callbacks into reactive streams, simplifying the management of continuous hardware events and data updates. It includes robust mocking capabi
MobileIMSDK is an open-source instant messaging framework that provides reliable real-time message delivery across iOS, Android, Java, HarmonyOS, and web platforms. At its core, it offers a unified communication layer that transparently supports UDP, TCP, and WebSocket transports, enabling developers to send and receive messages without managing protocol differences or connection state. The framework includes an automatic reconnection engine that detects network outages and restores connections without manual intervention, with built-in message retransmission and deduplication to guarantee exa
Gameplay is a high-performance C++ game engine and cross-platform framework designed for developing 2D and 3D interactive games. It functions as both a 3D graphics engine for rendering environments and a 2D game development kit for creating sprite-based mechanics. The framework provides a cross-platform abstraction layer to ensure that game logic and graphics run across various hardware and software platforms using a shared codebase. The engine implements a hardware-accelerated rendering pipeline and component-based game logic to separate data from behavior. It utilizes a native C++ impleme
Neutralinojs is a lightweight cross-platform desktop application framework that allows developers to build native applications using web technologies and a C++ backend. It serves as a native system API bridge, enabling JavaScript frontend code to execute system commands and manage files across Windows, macOS, and Linux. The project distinguishes itself as a portable runtime that renders interfaces via the system's built-in webview instead of bundling a full browser engine. This approach enables the packaging of web assets into small, standalone executable binaries. The framework provides com