naughtyfy

Crates.ionaughtyfy
lib.rsnaughtyfy
version0.2.1
sourcesrc
created_at2023-02-22 14:02:15.528722
updated_at2023-11-29 14:51:32.620914
descriptionModern fanotify wrapper.
homepage
repositoryhttps://github.com/SubconsciousCompute/naughtyfy.git
max_upload_size
id791824
size107,354
(atamakahere-git)

documentation

https://docs.rs/naughtyfy

README

📁 Naughtyfy

A modern fanotify wrapper.

Open issue for any feature/bug.

Example

use naughtyfy::api::*;
use naughtyfy::flags::*;

fn main() {
    unsafe {
        // Use carefully in multi thread.
        FAN_EVENT_BUFFER_LEN = 230.into();
    }
    // Initialise fanotify
    let fd = &init(FAN_CLASS_NOTIF, 0).unwrap();

    // Mark file descriptor for events
    mark(fd, FAN_MARK_ADD | FAN_MARK_MOUNT, FAN_ACCESS, AT_FDCWD, "/").unwrap();

    // Try extracting events from the buffer and print it
    let mut iter = 1;
    loop {
        let res = read(fd).unwrap();
        println!("{res:#?}");
        res.iter().for_each(|e| close(e.fd).unwrap());
        iter += 1;
        if iter > 100 {
            break;
        }
    }
}

Docs

Goals

  • Safe
  • Less overhead
  • Documented
  • Desciptive errors
  • Only 1 dependency (libc)
  • and, Fast ofc.

TODO

  • Add more example
  • Higher level API maybe?

Thanks

Commit count: 79

cargo fmt