fskit 0.2.0

Abstractions for building read-only sans-io abstractions VFS
Documentation

fskit

Useful abstractions for building sans-io filesystems on top of the vfs crate.

These abstractions were born out of developing enfusion_pak and wows-toolkit.

In both of these applications I created a sans-io filesystem parser which performed the low-level understanding of the filesystem itself, and abstracted its access using vfs.

Instead of copying/pasting the traits and common patterns around, fskit provides the abstractions that were useful across both crates.

tl;dr

  1. VfsEntry abstraction for building proper filesystem trees with knowledge of what a file/directory is, directory children, and the entry's metadata.
  2. VfsTree, which (at the time of writing) implements a a flat "tree" over the filesystem's full path.
  3. A ReadAt and AsyncReadAt trait, implemented by you, which receives read context suitable for implementors to figure out how to read the described file's range.
  4. ReadOnlyVfs<F, O>, implementing the standard read-only vfs functions over the above.

Together the above allow you to focus on the details of reading the filesystem, implement a few traits, build the tree, and you now have a working VFS.