A high-performance, cross-platform virtual filesystem that provides in-memory overrides for real filesystem operations without modifying the underlying files.
- Cross-platform support: Native implementations for Windows (ProjFS), macOS (FSKit), and Linux (FUSE)
- In-memory overrides: Modify files virtually without touching the real filesystem
- Transparent operation: Applications see modified content while originals remain unchanged
- High performance: Optimized for minimal overhead
- Async/await: Built on Tokio for efficient concurrent operations
# Install shadowfs
cargo install shadowfs-cli
# Mount a directory with shadowfs
shadowfs mount --source /path/to/source --mount /path/to/mount
# Check status
shadowfs status
# Unmount when done
shadowfs unmount /path/to/mountShadowFS consists of several components:
- shadowfs-core: Core abstractions and traits shared across platforms
- shadowfs-windows: Windows implementation using Projected File System (ProjFS)
- shadowfs-macos: macOS implementation using File System Kit (FSKit)
- shadowfs-linux: Linux implementation using FUSE
- shadowfs-ffi: C API for language bindings
- shadowfs-cli: Command-line interface
- Windows 10 version 1809 or later
- Projected File System feature enabled
- macOS 15.0 or later (for FSKit support)
- System Integrity Protection may need configuration
- FUSE 3.0 or later
- Kernel support for FUSE filesystems
# Clone the repository
git clone https://github.com/aslitaser/shadowfs.git
cd shadowfs
# Build for your platform
cargo build --release
# Run tests
cargo test --workspaceWe welcome contributions! Please see our Contributing Guidelines for details.
This project is licensed under the MIT License - see the LICENSE file for details.