rust-vfs
A virtual filesystem for Rust
The virtual file system abstraction generalizes over file systems and allows using different filesystem implementations (e.g. an in memory implementation for unit tests)
This crate currently has the following implementations:
- PhysicalFS - the actual filesystem of the underlying OS
- MemoryFS - an ephemeral in-memory file system, intended mainly for unit tests
- AltrootFS - a file system with its root in a particular directory of another filesystem
- OverlayFS - an overlay file system combining two filesystems, an upper layer with read/write access and a lower layer with only read access
- EmbeddedFS - a read-only file system embedded in the executable, requires
embedded-fs
feature
The minimum supported Rust version is 1.40.0.
Comments and pull-requests welcome!
Changelog
0.5.1 (2021-02-13)
- Exported
test_vfs
macro via the feature flagexport-test-macros
to allow downstream implementations to verify expected behaviour - The MSRV is now 1.40 due to requirements in upstream crates
- The embedded implementation was broken by the 0.5.0 API changes, and is now fixed
0.5.0 (2021-02-13)
- Changed
VfsPath::exists()
to returnVfsResult<bool>
instead of plainbool
(closes #17)
0.4.0 (2020-08-13)
- Added
OverlayFS
union filesystem - Added
VfsPath::read_to_string()
convenience method - Added
VfsPath::walk_dir()
method for recursive directory traversal - Added
VfsPath::{copy,move}_{file,dir}()
methods (closes #9) - License is now Apache 2.0
- Minimum supported Rust version (MSRV) is 1.32.0
0.3.0 (2020-08-04)
- Refactored to use a trait based design, simplifying usage and testing
0.2.1 (2020-02-06)
- Added
AltrootFS
(thanks @icefoxen)
0.1.0 (2016-05-14)
- Initial release
Roadmap
- Support for read-only filesystems
- Support for re-mounting filesystems
- Support for virtual filesystem access inside archives (e.g. zip)