NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #718 most downloaded on crates.io
A drop-in replacement for std::fs with more helpful error messages.
Last release 4 days ago
04 Oct 2026
Release timing varies
gaps range from 8 days to 12 months
Nearly every release is documented
notes for 30 of 30 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
30 releases · first in 2020
One column per quarter.
chore: Release fs-err version 3.3.2
chore: Release fs-err version 3.3.2
metadata and symlink_metadata (#95)read_to_string) wrapped a path in backticks, but functions using two paths, such as rename, did not. Now all paths shown are wrapped in backticks. (#94)Fix debug_tokio feature so it works as documented.
debug_tokio feature so it works as documented. (#92)chore: Release fs-err version 3.3.0
chore: Release fs-err version 3.3.0
os::unix::fs functions (#87):
std::os::unix::fs::FileExt::read_exact_atstd::os::unix::fs::FileExt::write_all_atstd::os::unix::fs::chrootstd::os::unix::fs::chownstd::os::unix::fs::lchownchore: Release fs-err version 3.2.2
chore: Release fs-err version 3.2.2
Rename parameters of symlink, soft_link and hard_link functions to match std
symlink, soft_link and hard_link functions to match std (#83)chore: Release fs-err version 3.2.0
chore: Release fs-err version 3.2.0
Introduce debug and debug_tokio feature. Debug filesystem errors faster by exposing more information (#81). Without this feature on, errors might look like this:
failed to open file `file.txt`: The system cannot find the file specified. (os error 2)
With this feature on, it will include additional information. For example:
failed to open file `file.txt`: The system cannot find the file specified. (os error 2)
Path does not exist `file.txt`
- Absolute path `/path/to/dir/file.txt`
- Missing `file.txt` from parent directory:
`/path/to/dir`
└── `file.md`
└── `different.txt`
It's suggested to enable this feature in dev-dependencies for security and performance reasons.
chore: Release fs-err version 3.1.3
chore: Release fs-err version 3.1.3
chore: Release fs-err version 3.1.2
chore: Release fs-err version 3.1.2
Added File::into_file and File::into_path
File::into_file and File::into_path (#73)chore: Release fs-err version 3.1.0
chore: Release fs-err version 3.1.0
create_new and options functions on File (#69)chore: Release fs-err version 3.0.0
chore: Release fs-err version 3.0.0
Error messages now include the original message from std::io::Error by default (#60). Previously this was exposed through the Error::source() method. For example, previously a message would look like:
failed to open file `file.txt`
and you would have to remember to print the source, or use a library like anyhow to print the full chain of source errors. The new error message includes the cause by default
failed to open file `file.txt`: The system cannot find the file specified. (os error 2)
Note that the original error is no longer exposed though Error::source() by default. If you need access to it, you can restore the previous behaviour with the expose_original_error feature flag.
The io_safety feature flag has been removed, and this functionality is now always enabled on Rust versions which support it (1.63.0 and greater).
Removed deprecated APIs: File::from_options, tokio::symlink
chore: Release fs-err version 2.11.0
chore: Release fs-err version 2.11.0
tokio::fs::symlink_dir() on Windows being incorrectly named symlink. The old function is now deprecated and will be removed in the next breaking release.chore: Release fs-err version 2.10.0
chore: Release fs-err version 2.10.0
fs_err_try_exists to std::path::Path via extension trait. This feature requires Rust 1.63 or later. (#48)(cargo-release) fs-err version 2.9.0
(cargo-release) fs-err version 2.9.0
* Fixed docs.rs build
Implement I/O safety traits (AsFd/AsHandle, Into /Into ) for file. This feature requires Rust 1.63 or later and is gated behind the io_safety feature
AsFd/AsHandle, Into<OwnedFd>/Into<OwnedHandle>) for file. This feature requires Rust 1.63 or later and is gated behind the io_safety feature flag. (#39)* Implement From for std::File
From<fs_err::File> for std::fs::File (#38)Added `File::into_parts` and `File::file_mut` to provide more access to the underlying std::File.
File::into_parts and File::file_mut to provide more access to the underlying std::fs::File.Added symlink for unix platforms
symlink for unix platformssymlink_file and symlink_dir for windowsFile
std::os::unix::io::{AsRawFd, IntoRawFd}std::os::windows::io::{AsRawHandle, IntoRawHandle}std::os::{unix, windows}::fs::FileExt and implemented them for fs_err::FileOpenOptions
std::os::{unix, windows}::fs::OpenOptionsExt and implemented them for fs_err::OpenOptionsAsRef<Path> + Into<PathBuf> to either AsRef<Path> or Into<PathBuf>, making the functions more general.Added canonicalize, hard link, read_link, rename, symlink_metadata and soft_link.
Added create_dir and create_dir_all.
* Added metadata.
metadata. (#15)Updated crate-level documentation.
* Added copy.
copy. (#7)Removed custom error type in favor of std::Error.
std::io::Error. (#2)Fixed bad documentation link in Cargo.toml.
Cargo.toml.* No changes from 0.1.2.
Added Error::cause implementation for fs_err::Error.
Error::cause implementation for fs_err::Error.Added wrappers for std::* functions.
std::fs::* functions.Initial release, containing a wrapper around std::File.
std::fs::File.Your coding agent can read these notes before it upgrades. Set up the MCP server →