Crate negahban

Crate negahban 

Source
Expand description

ยง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.

Macrosยง

hashset
Creates a HashSet instance with the given values.

Structsยง

Negahban
The main struct of negahban crate

Enumsยง

EventType
Determines which types of events should be passed to the hook
HookType
Determines the type of hook to be called on the chosen events occurrence
RecurseMode
Indicates whether only the provided directory or its sub-directories as well should be watched
WatcherMode
Determines the type of watcher used by the notify crate.