3 releases

0.2.2 Jan 21, 2024
0.2.1 Jan 20, 2024
0.2.0 Nov 27, 2023
0.1.0 Nov 27, 2023

#555 in Filesystem

Download history 85/week @ 2024-01-20 59/week @ 2024-01-27 66/week @ 2024-02-03 8/week @ 2024-02-17 54/week @ 2024-02-24 24/week @ 2024-03-02 12/week @ 2024-03-09 12/week @ 2024-03-16 164/week @ 2024-03-23 39/week @ 2024-03-30 4/week @ 2024-04-06 16/week @ 2024-04-13

223 downloads per month
Used in 3 crates (via sos-sdk)

MIT/Apache

79KB
2K SLoC

Virtual file system.

The API is designed to match the tokio::fs module which in turn is based on std::fs so the API should be familiar.

The default operating system VFS re-exports the tokio::fs module providing access to the operating system's file system.

Using the memory VFS allows us to compile and target the wasm32-unknown-unknown platform with minimal changes to the code.

The memory file system is enabled by default for wasm32-unknown-unknown or if the mem-fs feature is enabled.

Memory VFS Caveats

Relative paths are resolved from the root of the file system.

Avoid using the PathBuf functions exists(), metadata(), is_dir(), is_file() etc as they will be incorrect when using a virtual file system. Instead use the vfs::metadata() and vfs::try_exists() asynchronous functions.

The SystemTime type is not available on wasm32-unknown-unknwown so Metadata does not support created(), accessed() and modified() for that target.

Memory VFS Unsupported

This functionality is not supported yet but we hope to implement in the future.

The readonly flag on permissions is not supported yet.

Created, accessed and modified times are not set yet for non-webassembly targets that support SystemTime.

Symbolic links are not supported yet which means the hard_link(), symlink(), symlink_metadata(), symlink_file() and symlink_dir() functions are not available.

Dependencies

~1.4–8MB
~67K SLoC