π§ 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,WatcherModeconfiguration 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 negahbanA 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.