logo
Expand description

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

This corresponds to async_std::fs.

Instead of async_std::fs’s free functions and async_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 async_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 async_std::path::Path rather than having its own path type, however while async_std::path::Path is mostly just a pure datatype, it includes aliases for several async_std::fs functions. To preserve the capability-based interface, avoid using async_std::path::Path’s canonicalize, read_link, read_dir, metadata, and symlink_metadata functions.

Structs

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.

Traits

Unix-specific extensions for FileType.