All Projects → manuel-woelker → rust-vfs

manuel-woelker / rust-vfs

Licence: Apache-2.0 license
A virtual filesystem for Rust

Programming Languages

rust
11053 projects
shell
77523 projects

Projects that are alternatives of or similar to rust-vfs

Windows-System-Wide-Filter
Windows WDM driver filters to filter IO to devices and file systems
Stars: ✭ 49 (-67.33%)
Mutual labels:  filesystem
fs-fuse
Export any Node.js `fs`-like object as a FUSE filesystem
Stars: ✭ 32 (-78.67%)
Mutual labels:  filesystem
rorshach
A watchman for your directories. Rorshach allows you to listen to file system changes and run commands when these events occur.
Stars: ✭ 26 (-82.67%)
Mutual labels:  filesystem
jquery.filebrowser
File browser jQuery plugin
Stars: ✭ 29 (-80.67%)
Mutual labels:  filesystem
Enchilada
Enchilada is a filesystem abstraction layer written in C#
Stars: ✭ 29 (-80.67%)
Mutual labels:  filesystem
TOFileSystemObserver
A bullet-proof mechanism for detecting any changes made to the contents of a folder in iOS and macOS.
Stars: ✭ 35 (-76.67%)
Mutual labels:  filesystem
aliyun-oss-laravel
Laravel 的 Aliyun OSS 扩展, 支持 Laravel 9. Alibaba Cloud Object Storage Service For Laravel.
Stars: ✭ 91 (-39.33%)
Mutual labels:  filesystem
react-file-manager
A file manager built in ReactJs
Stars: ✭ 40 (-73.33%)
Mutual labels:  filesystem
juicefs-csi-driver
JuiceFS CSI Driver
Stars: ✭ 117 (-22%)
Mutual labels:  filesystem
Meteor-logger-file
🔖 Meteor Logging: Store application log messages into file (FS)
Stars: ✭ 24 (-84%)
Mutual labels:  filesystem
Transactional-NTFS-TxF-.NET
Transactional NTFS (TxF) Library .NET is a small library .Net (C#) allows to use transactions on NTFS FileSystem (Transactional NTFS (TxF))
Stars: ✭ 20 (-86.67%)
Mutual labels:  filesystem
PHP-FileUpload
Simple and convenient file uploads — secure by default
Stars: ✭ 53 (-64.67%)
Mutual labels:  filesystem
Dazinator.Extensions.FileProviders
No description or website provided.
Stars: ✭ 34 (-77.33%)
Mutual labels:  filesystem
lfs
Lightweight file system
Stars: ✭ 12 (-92%)
Mutual labels:  filesystem
weaver
A distributed object file system inspired by the paper Beaver which was published by Facebook Inc. at 2010.
Stars: ✭ 18 (-88%)
Mutual labels:  filesystem
save-file
Save any data to file in browser or node
Stars: ✭ 40 (-73.33%)
Mutual labels:  filesystem
Aqeous
(Inactive, Checkout AvanaOS, Rewrite of this) This is a New Operating System (Kernel right now). Made completely from scratch, We aim to make a complete OS for Learning purpose
Stars: ✭ 23 (-84.67%)
Mutual labels:  filesystem
fswatch
File/Directory Watcher for Modern C++
Stars: ✭ 56 (-62.67%)
Mutual labels:  filesystem
ddlfs
Filesystem which represents Oracle Database objects as their DDL stored in .sql files
Stars: ✭ 31 (-79.33%)
Mutual labels:  filesystem
s3-concat
Concatenate Amazon S3 files remotely using flexible patterns
Stars: ✭ 32 (-78.67%)
Mutual labels:  filesystem

rust-vfs

Crate API Minimum rustc version Actions Status Build Status

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.8.0 (2022-11-24)

  • Impl std::error::Error for VfsError (#32) and improved error ergonomics for end users (#34) - thanks @Technohacker

0.7.1 (2022-04-15)

  • Fixed a panic when accessing non-existing paths in MemoryFS::append_file() (closes #31)

0.7.0 (2022-03-26)

  • Update to EmbeddedFS to rust-embed v6 (closes #29)
  • Make OverlayFS and AltrootFS available at the crate root, making it more consistent (PR #30 - thanks @Zyian)

0.6.2 (2022-03-07)

  • Activate embedded-fs feature when building on docs.rs to ensure that it actually shows up there (#28 - thanks @Absolucy)

0.6.1 (2022-03-06)

  • Added VfsPath::root() method to access the root path of a virtual filesystem (closes #26)
  • Added doctests to VfsPath docs to provide usage examples

0.6.0 (2022-03-02)

  • Fixed path inconsistency issues in EmbeddedFS (closes #24)
  • Added the test macro test_vfs_readonly! which allows verifying read-only filesystem implementations
  • Removed dependency on thiserror crate to improve compile times (closes #25)

0.5.2 (2022-02-07)

  • Removed potential panic in OverlayFS (closes #23)
  • VfsPath::join() now takes AsRef instead of &str to improve ergonomics with crates like camino

0.5.1 (2021-02-13)

  • Exported test_vfs macro via the feature flag export-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)

  • Added EmbeddedFS for using filesystems embeded in the binary using rust-embed (PR #12 - thanks @ahouts)
  • Changed VfsPath::exists() to return VfsResult<bool> instead of plain bool (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)

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)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].