#fuse-overlayfs #overlayfs

damascus

filesystem utility crate for the Flamberg mod manager stack

1 unstable release

0.0.6 Nov 11, 2024
0.0.5 Nov 11, 2024
0.0.4 Nov 11, 2024
0.0.3 Nov 11, 2024

#446 in Filesystem

49 downloads per month

Custom license

525KB
13K SLoC

C 9K SLoC // 0.1% comments Rust 2K SLoC // 0.0% comments M4 1.5K SLoC // 0.3% comments Python 631 SLoC // 0.1% comments Shell 411 SLoC // 0.1% comments Automake 153 SLoC // 0.3% comments

Contains (obscure autoconf code, 2KB) vendor/fuse-overlayfs/configure.ac

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.

Dependencies

~0.3–36MB
~540K SLoC