π§ A simple file watcher, based on notify
, designed to be fast, easy-to-use and async friendly.
Project is alpha, it may fail at any given moment, heavily WIP
Negahban(ΩΪ―ΩΨ¨Ψ§Ω) is a farsi word which translates roughly to watchman/sentinel
negahban
is a Rust library based on notify
that allows you to watch a directory for changes.
This library is designed to be:
- Simple, Sane defaults π±
- Blazing Fast π
- Async friendly π
- Cross-platform π
- Supports multiple event types such as file creation, deletion, and modification.
- [WIP] Provides
HookType
,EventType
,WatchMode
,RecurseMode
,WatcherMode
configuration as simple to use enums. - Can ignore specific files and directories.
- Easy to use and async friendly.
Run this in your rust project folder:
cargo add negahban
A minimal example that monitors the current directory and logs events to the console:
use negahban::{Negahban, HookType};
fn main() {
Negahban{
// fields you want to change e.g.:
hook: HookType::IndefiniteHook(
Box::new(|event| (println!("{event:#?}")))
),
..Negahban::default() // sets rest of them to default
}.watch();
}
Check the tests/
directory for more examples.
This project is licensed under the MIT License - see the LICENSE file for details.