negahban

Crates.ionegahban
lib.rsnegahban
version0.3.1
sourcesrc
created_at2023-03-11 16:01:52.44893
updated_at2023-06-03 14:36:24.081966
description🧐 A simple file watcher, based on `notify`, designed to be fast, easy-to-use and async friendly
homepagehttps://github.com/aarmn/negahban
repositoryhttps://github.com/aarmn/negahban
max_upload_size
id807353
size31,806
Aarmn the limitless (aarmn)

documentation

README

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

MIT License Crates.io docs.rs

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.

Commit count: 22

cargo fmt