damascus

Crates.iodamascus
lib.rsdamascus
version0.0.10
created_at2024-11-11 15:27:50.52546+00
updated_at2025-08-11 14:30:30.817658+00
descriptionfilesystem utility crate for the Flamberge mod manager stack
homepage
repositoryhttps://github.com/Yato202010/Damascus
max_upload_size
id1443851
size835,924
(Yato202010)

documentation

README

Damascus

GitHub Issues or Pull Requests GitHub License docs.rs Crates.io Version

Damascus is a utility crate focused on providing a simple way to interact with filesystem from rust

Supported system

System Status Available Handle
Window Unsupported /
Linux Supported OverlayFs , FuseOverlayFs
Linux Experimental UnionFsFuse
MacOS Unsupported /

How to use?

use damascus::{Filesystem, FuseOverlayFs, FuseOverlayFsOption, LinuxFilesystem, MountOption, StateRecovery};

// handle can be created using complex or simple interface based on need
// NOTE : drop control if once dropped the filesystem should be unmounted
let mut o = FuseOverlayFs::new([&lower1, &lower2].iter(), Some(upper), Some(work), target, drop).unwrap();
// or
let mut o = FuseOverlayFs::writable([&lower1, &lower2].iter(), upper, work, &target).unwrap();
// or
let mut o = FuseOverlayFs::readonly([&lower1, &lower2].iter(), target).unwrap();

o.set_option(FuseOverlayFsOption::AllowRoot).unwrap();
o.set_unmount_on_drop(false); // true by default

// once configured you can mount it
o.mount().unwrap();

// and then unmount it
o.unmount().unwrap();

// if handle is lost it can be recovered from system information
let recovered = FuseOverlayFs::recover(target).unwrap();

FAQ

  • Will you target Windows and MacOS support?
    • In the long run some support may be implemented for those platforms as the current implementation leave place for a cross-platform support in the future.
Commit count: 81

cargo fmt