PackageTrack
Sign in Get early access

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 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 29
  1. 3.3.1 03 Jul 2026
    Release notes
    • Fix debug_tokio feature so it works as documented. (#92)
    Open source →
  2. 3.3.0 07 Feb 2026
    Release notes

    chore: Release fs-err version 3.3.0

    Open source →
    Release notes
    • Cleanup rustdoc links to make them clickable in rust-analyzer (#88)
    • Add wrappers for several os::unix::fs functions (#87):
      • std::os::unix::fs::FileExt::read_exact_at
      • std::os::unix::fs::FileExt::write_all_at
      • std::os::unix::fs::chroot
      • std::os::unix::fs::chown
      • std::os::unix::fs::lchown
    • Replace '/' operator in SPDX license expression with 'OR' for readability (#86)
    Open source →
  3. 3.2.2 24 Dec 2025
    Release notes

    chore: Release fs-err version 3.2.2

    Open source →
    Release notes
    • Add wrappers for File::set_modified and File::set_times (#84)
    Open source →
  4. 3.2.1 15 Dec 2025
    Release notes
    • Rename parameters of symlink, soft_link and hard_link functions to match std (#83)
    Open source →
  5. 3.2.0 15 Nov 2025
    Release notes

    chore: Release fs-err version 3.2.0

    Open source →
    Release notes
    • 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.

    Open source →
  6. 3.1.3 05 Oct 2025
    Release notes

    chore: Release fs-err version 3.1.3

    Open source →
    Release notes
    • Add wrappers for std::fs::exists and tokio::fs::try_exists (#77)
    Open source →
  7. 3.1.2 15 Sep 2025
    Release notes

    chore: Release fs-err version 3.1.2

    Open source →
    Release notes
    • Added wrappers for locking methods added to File in Rust 1.89 (#75)
    Open source →
  8. 3.1.1 08 Jun 2025
    Release notes
    • Added File::into_file and File::into_path (#73)
    Open source →
  9. 3.1.0 21 Jan 2025
    Release notes

    chore: Release fs-err version 3.1.0

    Open source →
    Release notes
    • Added new wrappers for create_new and options functions on File (#69)
    Open source →
  10. 3.0.0 23 Oct 2024
    Release notes

    chore: Release fs-err version 3.0.0

    Open source →
    Release notes
    • 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

    Open source →
  11. 2.11.0 20 Nov 2023
    Release notes

    chore: Release fs-err version 2.11.0

    Open source →
    Release notes
    • 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 named symlink. The old function is now deprecated and will be removed in the next breaking release.
    Open source →
  12. 2.10.0 12 Nov 2023
    Release notes

    chore: Release fs-err version 2.10.0

    Open source →
    Release notes
    • Add fs_err_try_exists to std::path::Path via extension trait. This feature requires Rust 1.63 or later. (#48)
    Open source →
  13. 2.9.0 31 Oct 2022
    Release notes

    (cargo-release) fs-err version 2.9.0

    Open source →
    Release notes
    Open source →
  14. 2.8.1 17 Aug 2022
    Release notes
    • Fixed docs.rs build
    Open source →
  15. 2.8.0 17 Aug 2022
    Release notes
    • 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 the io_safety feature flag. (#39)
    Open source →
  16. 2.7.0 19 Feb 2022
    Release notes
    • Implement From<fs_err::File> for std::fs::File (#38)
    Open source →
  17. 2.6.0 06 May 2021
    Release notes
    Open source →
  18. 2.5.0 27 Sep 2020
    Release notes
    • Added symlink for unix platforms
    • Added symlink_file and symlink_dir for windows
    • Implemented os-specific extension traits for File
      • std::os::unix::io::{AsRawFd, IntoRawFd}
      • std::os::windows::io::{AsRawHandle, IntoRawHandle}
      • Added trait wrappers for std::os::{unix, windows}::fs::FileExt and implemented them for fs_err::File
    • Implemented os-specific extension traits for OpenOptions
      • Added trait wrappers for std::os::{unix, windows}::fs::OpenOptionsExt and implemented them for fs_err::OpenOptions
    • 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 either AsRef<Path> or Into<PathBuf>, making the functions more general.
    Open source →
  19. 2.4.0 19 Sep 2020
    Release notes
    • Added canonicalize, hard link, read_link, rename, symlink_metadata and soft_link. (#25)
    • Added aliases to std::path::Path via extension trait (#26)
    • Added OpenOptions (#27)
    • Added set_permissions (#28)
    Open source →
  20. 2.3.0 17 Mar 2020
    Release notes
    • Added create_dir and create_dir_all. (#19)
    • Added remove_file, remove_dir, and remove_dir_all. (#16)
    Open source →
  21. 2.2.0 05 Mar 2020
    Release notes
    • Added metadata. (#15)
    Open source →
  22. 2.1.0 04 Mar 2020
    Release notes
    • Updated crate-level documentation. (#8)
    • Added read_dir, ReadDir, and DirEntry. (#9)
    Open source →
  23. 2.0.1 22 Feb 2020
    Release notes
    • Added copy. (#7)
    Open source →
  24. 2.0.0 19 Feb 2020
    Release notes
    • Removed custom error type in favor of std::io::Error. (#2)
    Open source →
  25. 1.0.1 15 Feb 2020
    Release notes
    • Fixed bad documentation link in Cargo.toml.
    Open source →
  26. 1.0.0 15 Feb 2020
    Release notes
    • No changes from 0.1.2.
    Open source →
  27. 0.1.2 10 Feb 2020
    Release notes
    • Added Error::cause implementation for fs_err::Error.
    Open source →
  28. 0.1.1 05 Feb 2020
    Release notes
    • Added wrappers for std::fs::* functions.
    Open source →
  29. 0.1.0 02 Feb 2020
    Release notes
    • Initial release, containing a wrapper around std::fs::File.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive