6 releases
0.3.1 | Jun 3, 2023 |
---|---|
0.3.0 |
|
0.2.5 | Mar 23, 2023 |
0.1.0 |
|
#646 in Asynchronous
30 downloads per month
18KB
220 lines
Negahban
🧐 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
Name 😀
Negahban(نگهبان) is a farsi word which translates roughly to watchman/sentinel
Overview 📊
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 🌐
Features ✨
- 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.
Usage 🔨
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();
}
Examples 👨💻
Check the tests/
directory for more examples.
License ⚖
This project is licensed under the MIT License - see the LICENSE file for details.
Dependencies
~2–13MB
~98K SLoC