Skip to content

Yato202010/Damascus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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};

// 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();

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.