#fuse-overlayfs #overlayfs

damascus

filesystem utility crate for the Flamberge mod manager stack

3 releases

new 0.0.8 Jan 14, 2025
0.0.7 Jan 12, 2025
0.0.6 Nov 11, 2024

#450 in Filesystem

Download history 160/week @ 2024-11-05 221/week @ 2024-11-12 4/week @ 2024-11-19 4/week @ 2024-12-10 72/week @ 2025-01-07

73 downloads per month

Custom license

535KB
14K SLoC

C 9K SLoC // 0.1% comments Rust 2K SLoC // 0.0% comments M4 1.5K SLoC // 0.3% comments Python 696 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–34MB
~485K SLoC