Thanks to visit codestin.com
Credit goes to lib.rs

#debounce #async #filesystem #notify

fsig

A filesystem signal crate for monitoring, debouncing, and filtering events

3 releases

Uses new Rust 2024

new 0.2.4 Jan 27, 2026
0.2.3 Jan 26, 2026
0.2.1 Jan 26, 2026

#578 in Asynchronous

MIT license

21KB
415 lines

Fsig

Filesystem signal crate for monitoring, debouncing, and filtering events.

fsig abstracts away the boilerplate of setting up file watchers, handling noisy OS events, and filtering relevant changes. It turns raw filesystem notifications into clean, deduplicated signals your application can act on.

Features

  • Debouncing: Configurable time window to merge rapid successive events into one.
  • Event Coalescing: Intelligent state machine that merges Create→Modify sequences and handles OS-specific noise.
  • Glob Filtering: Include/exclude files using glob patterns with full ** recursive support (powered by globset).
  • Hidden File Filtering: Automatically ignore dotfiles and dot-directories.
  • Multi-Subscriber: Broadcast channel allows multiple consumers to receive the same events.
  • Stream API: futures::Stream integration for ergonomic async iteration.
  • Watcher Groups: Manage multiple named watchers with a unified interface.

Usage Examples

Check the examples and tests directories for runnable code:

Installation

[dependencies]
fsig = { version = "0.2", features = ["full"] }

Feature Flags

Feature Description
match Enable glob pattern filtering (Target::Filtered)
stream Enable futures::Stream API via Watcher::stream()
serde Derive Serialize/Deserialize for config types
full All of the above

License

Released under the MIT License © 2026 Canmi

Dependencies

~7–22MB
~176K SLoC