Module cap_std::fs

source ·
Expand description

A capability-based filesystem API modeled after std::fs.

This corresponds to std::fs.

Instead of std::fs’s free functions and std::fs::File’s constructors which operate on bare paths, this crate has methods on Dir which operate on paths which must be relative to the directory.

Where std says “the filesystem”, this API says “a filesystem”, as it doesn’t assume that there’s a single global filesystem namespace.

Since all functions which expose raw file descriptors are unsafe, I/O handles in this API are unforgeable (unsafe code notwithstanding). This combined with a lack of absolute paths provides a natural capability-based interface.

This crate uses the existing std::path::Path rather than having its own path type, however while std::path::Path is mostly just a pure datatype, it includes aliases for several std::fs functions. To preserve the capability-based interface, avoid using std::path::Path’s canonicalize, read_link, read_dir, metadata, and symlink_metadata functions.


  • A reference to an open directory on a filesystem.
  • A builder used to create directories in various manners.
  • Entries returned by the ReadDir iterator.
  • A reference to an open file on a filesystem.
  • A structure representing a type of file with accessors for each file type.
  • Metadata information about a file.
  • Options and flags which can be used to configure how a file is opened.
  • Representation of the various permissions on a file.
  • Iterator over the entries in a directory.