4 releases
0.0.9 | Jan 31, 2025 |
---|---|
0.0.8 | Jan 14, 2025 |
0.0.6 | Nov 11, 2024 |
#431 in Filesystem
331 downloads per month
545KB
14K
SLoC
Contains (obscure autoconf code, 2KB) vendor/fuse-overlayfs/configure.ac
Damascus
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.
Dependencies
~0.3–34MB
~484K SLoC