fs-err
A drop-in replacement for std::fs with more helpful error messages.
3.3.1
123M downloads/mo
#713 most downloaded on crates.io
andrewhickman/fs-err
What this package is like to depend on
Last release 1 months ago
03 Jul 2026
Release timing varies
gaps range from 8 days to 13 months
Nearly every release is documented
notes for 29 of 29 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
29 releases · first in 2020
7 releases in the last 12 months
see the full history below
Release timeline
29 releases · Feb 2020 to Jul 2026Releases
latest 29-
3.3.103 Jul 2026 -
3.3.007 Feb 2026Release notes
Open source →- Cleanup rustdoc links to make them clickable in rust-analyzer (#88)
- Add wrappers for several
os::unix::fsfunctions (#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::lchown
- Replace '/' operator in SPDX license expression with 'OR' for readability (#86)
-
3.2.224 Dec 2025 -
3.2.115 Dec 2025Release notes
Open source →- Rename parameters of
symlink,soft_linkandhard_linkfunctions to matchstd(#83)
- Rename parameters of
-
3.2.015 Nov 2025Release notes
Open source →-
Introduce
debuganddebug_tokiofeature. 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-dependenciesfor security and performance reasons.
-
-
3.1.305 Oct 2025 -
3.1.215 Sep 2025 -
3.1.108 Jun 2025 -
3.1.021 Jan 2025 -
3.0.023 Oct 2024Release notes
Open source →-
Error messages now include the original message from
std::io::Errorby default (#60). Previously this was exposed through theError::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
anyhowto print the full chain of source errors. The new error message includes the cause by defaultfailed 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 theexpose_original_errorfeature flag. -
The
io_safetyfeature 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
-
-
2.11.020 Nov 2023Release notes
Open source →- Added the first line of the standard library documentation to each function's rustdocs, to make them more useful in IDEs (#50)
- Fixed the wrapper for
tokio::fs::symlink_dir()on Windows being incorrectly namedsymlink. The old function is now deprecated and will be removed in the next breaking release.
-
2.10.012 Nov 2023Release notes
Open source →- Add
fs_err_try_existstostd::path::Pathvia extension trait. This feature requires Rust 1.63 or later. (#48)
- Add
-
2.9.031 Oct 2022 -
2.8.117 Aug 2022 -
2.8.017 Aug 2022Release notes
Open source →- Implement I/O safety traits (
AsFd/AsHandle,Into<OwnedFd>/Into<OwnedHandle>) for file. This feature requires Rust 1.63 or later and is gated behind theio_safetyfeature flag. (#39)
- Implement I/O safety traits (
-
2.7.019 Feb 2022 -
2.6.006 May 2021Release notes
Open source →- Added
File::into_partsandFile::file_mutto provide more access to the underlyingstd::fs::File. - Fixed some typos in documention (#33)
- Added
-
2.5.027 Sep 2020Release notes
Open source →- Added
symlinkfor unix platforms - Added
symlink_fileandsymlink_dirfor windows - Implemented os-specific extension traits for
Filestd::os::unix::io::{AsRawFd, IntoRawFd}std::os::windows::io::{AsRawHandle, IntoRawHandle}- Added trait wrappers for
std::os::{unix, windows}::fs::FileExtand implemented them forfs_err::File
- Implemented os-specific extension traits for
OpenOptions- Added trait wrappers for
std::os::{unix, windows}::fs::OpenOptionsExtand implemented them forfs_err::OpenOptions
- Added trait wrappers for
- Improved compile times by converting arguments early and forwarding only a small number of types internally. There will be a slight performance hit only in the error case.
- Reduced trait bounds on generics from
AsRef<Path> + Into<PathBuf>to eitherAsRef<Path>orInto<PathBuf>, making the functions more general.
- Added
-
2.4.019 Sep 2020 -
2.3.017 Mar 2020Release notes
Open source → -
2.2.005 Mar 2020 -
2.1.004 Mar 2020Release notes
Open source → -
2.0.122 Feb 2020 -
2.0.019 Feb 2020 -
1.0.115 Feb 2020 -
1.0.015 Feb 2020 -
0.1.210 Feb 2020 -
0.1.105 Feb 2020 -
0.1.002 Feb 2020