PackageTrack
Sign in Get early access

typed-path

Provides typed variants of Path and PathBuf for Unix and Windows

0.12.3 28M downloads/mo #1761 most downloaded on crates.io chipsenkbeil/typed-path

What this package is like to depend on

Last release 6 months ago

11 Feb 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 24 of 24 stable releases

Nothing withdrawn

no release was ever pulled

4 years old

24 releases · first in 2022

4 releases in the last 12 months

see the full history below

Release timeline

24 releases · Aug 2022 to Feb 2026
2023 2024 2025 2026
Release Pre-release

Releases

latest 24
  1. 0.12.3 11 Feb 2026
    Release notes

    What's Changed

    • Remove AsRef<Path> for Cow<[u8]> and AsRef<Utf8Path> for Cow as they conflict with other libraries by @Its-Just-Nans in 7dc7403

    New Contributors

    Full Changelog: v0.12.2...v0.12.3

    Open source →
    Release notes
    • Remove AsRef<Path<T>> for Cow<[u8]> and AsRef<Utf8Path<T>> for Cow<str> as they conflict with other libraries (by Its-Just-Nans)
    Open source →
  2. 0.12.2 28 Jan 2026
    Release notes

    What's Changed

    • Add proper license files to the repo by @sugoi1 in #58

    New Contributors

    Full Changelog: v0.12.1...v0.12.2

    Open source →
    Release notes
    • Add missing LICENSE-APACHE and LICENSE-MIT files (#58)
    Open source →
  3. 0.12.1 22 Jan 2026
    Release notes

    What's Changed

    • fix: enable wasip2 feature for wasm32-wasip2 target by @cdmurph32 in #57

    New Contributors

    Full Changelog: v0.12.0...v0.12.1

    Open source →
    Release notes
    • Enable wasip2 feature for wasm32-wasip2 target (#57)
    • Fix unused import warning for std::io on wasm targets where the absolutize function (which uses io) is not available (#57)
    Open source →
  4. 0.12.0 05 Oct 2025
    Release notes

    What's Changed

    • Fix type reference for parent() methods mentioned in #44
    • Refactor utils to return platform paths instead of native paths
    • Expose native and platform modules only when unix or windows by @AlexCharlton in #51
    • Fix for platforms not supporting atomic loads by @Oakchris1955 in #52
    • Update to be compliant with Rust Clippy 1.90.0

    New Contributors

    Full Changelog: v0.11.0...v0.12.0

    Open source →
    Release notes
    • Fix type reference for parent() methods mentioned in #44
    • Refactor utils to return platform paths instead of native paths
    • Expose native and platform mods only when unix or windows (#51)
    • Fix for platforms not supporting atomic loads (#52)
    • Update to be compliant with Rust Clippy 1.90.0
    Open source →
  5. 0.11.0 25 Apr 2025
    Release notes

    What's Changed

    • Lift static restriction for Path methods by @fominok in #46
    • Switch to dtolnay/rust-toolchain by @chipsenkbeil in #48
    • Remove lifetime from Encoding and Utf8Encoding traits by @fominok in #47

    As a consequence of #47, this bumps the minimum Rust version to 1.65.0.

    New Contributors

    Full Changelog: v0.10.0...v0.11.0

    Open source →
    Release notes
    • Lift restriction on static lifetime for checking if an encoding is representative of the platform (#46)
    • Remove lifetime from Encoding and Utf8Encoding traits as GATs introduced in Rust 1.65.0 enable us to relax this requirement (#47)
    • Switch to dtolnay/rust-toolchain to fix issues where minimum version of Rust wasn't being applied in tests (#48)
    Open source →
  6. 0.10.0 01 Dec 2024
    Release notes

    What's Changed

    • Add PlatformEncoding and Utf8PlatformEncoding structs that mirror the
      functionality of NativeEncoding and Utf8NativeEncoding respectively, but
      as distinct structs instead of type aliases.
    • Add PlatformPath and PlatformPathBuf type aliases that use PlatformEncoding.
    • Add Utf8PlatformPath and Utf8PlatformPathBuf type aliases that use Utf8PlatformEncoding.
    • Add AsRef<ffi::OsStr> for Utf8Path and Utf8PathBuf.
    • Add TryAsRef<Utf8Path> for ffi::OsStr and ffi::OsString.
    • Add From<Utf8PathBuf> for ffi::OsString.
    • Remove implementation of TryAsRef<std::path::Path> for Path<T>.
    • Remove implementation of TryAsRef<Path<T>> for std::path::Path.
    • Remove implementation of TryAsRef<std::path::Path> for TypedPath.
    • Remove implementation of TryAsRef<std::path::Path> for Utf8TypedPath.
    • Remove implementation of TryFrom<Utf8TypedPathBuf> for std::path::PathBuf.
    • Remove implementation of TryFrom<Utf8TypedPathBuf> for std::path::PathBuf.
    • Remove implementation of From<Utf8UnixPathBuf> for std::path::PathBuf.
    • Remove implementation of From<Utf8WindowsPathBuf> for std::path::PathBuf.

    Full Changelog: v0.9.3...v0.10.0

    Open source →
    Release notes
    • Add PlatformEncoding and Utf8PlatformEncoding structs that mirror the functionality of NativeEncoding and Utf8NativeEncoding respectively, but as distinct structs instead of type aliases.
    • Add PlatformPath and PlatformPathBuf type aliases that use PlatformEncoding.
    • Add Utf8PlatformPath and Utf8PlatformPathBuf type aliases that use Utf8PlatformEncoding.
    • Add AsRef<ffi::OsStr> for Utf8Path and Utf8PathBuf.
    • Add TryAsRef<Utf8Path> for ffi::OsStr and ffi::OsString.
    • Add From<Utf8PathBuf> for ffi::OsString.
    • Remove implementation of TryAsRef<std::path::Path> for Path<T>.
    • Remove implementation of TryAsRef<Path<T>> for std::path::Path.
    • Remove implementation of TryAsRef<std::path::Path> for TypedPath.
    • Remove implementation of TryAsRef<std::path::Path> for Utf8TypedPath.
    • Remove implementation of TryFrom<Utf8TypedPathBuf> for std::path::PathBuf.
    • Remove implementation of TryFrom<Utf8TypedPathBuf> for std::path::PathBuf.
    • Remove implementation of From<Utf8UnixPathBuf> for std::path::PathBuf.
    • Remove implementation of From<Utf8WindowsPathBuf> for std::path::PathBuf.
    Open source →
  7. 0.9.3 15 Oct 2024
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v0.9.2...v0.9.3

    Open source →
    Release notes
    • Fix lib.rs file permissions to not be executable (#33).
    Open source →
  8. 0.9.2 15 Sep 2024
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v0.9.1...v0.9.2

    Open source →
    Release notes
    • Fix windows() function of TypedPathBuf and Utf8TypedPathBuf to properly return an instance of WindowsPathBuf and Utf8WindowsPathBuf respectively. Before this fix, the function instead returned a Unix path wrapper. (#30)
    • Minimum Rust version of 1.58.1 is now explicitly set via rust-version.
    • Address a variety of internal clippy warnings.
    Open source →
  9. 0.9.1 16 Jul 2024
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v0.9.0...v0.9.1

    Open source →
    Release notes
    • Add derived Hash, PartialOrd, and Ord implementations for TypedPath and TypedPathBuf enumerations.
    Open source →
  10. 0.9.0 15 Jun 2024
    Release notes

    What's Changed

    • Add typed-path versions for current_exe and temp_dir, including UTF8 variants by @simongoricar in #24

    New Contributors

    Full Changelog: v0.8.0...v0.9.0

    Open source →
    Release notes
    • Add current_exe and utf8_current_exe functions to the utils module to return native pathbufs wrapping the standard library paths.
    • Add temp_dir and utf8_temp_dir functions to the utils module to return native pathbufs wrapping the standard library paths.
    Open source →
  11. 0.8.0 25 Feb 2024
    Release notes
    • Add push_checked function, which ensures that any path added to an existing PathBuf or TypedPathBuf must abide by the following rules:
      1. It cannot be an absolute path. Only relative paths allowed.
      2. In the case of Windows, it cannot start with a prefix like C:.
      3. All normal components of the path must contain only valid characters.
      4. If parent directory (..) components are present, they must not result in a path traversal attack (impacting the current path).
    • Add join_checked function, which ensures that any path joied with an existing path follows the rules of push_checked
    • Add with_encoding_checked function to ensure that the resulting path from an encoding conversion is still valid
    • Add with_unix_encoding_checked and with_windows_encoding_checked functions as shortcuts to with_encoding_checked
    • Add is_valid to Component and Utf8Component traits alongside Path and Utf8Path to indicate if a component/path is valid for the given encoding
    Open source →
  12. 0.7.1 16 Feb 2024
    Release notes
    • Support wasm family for compilation
    Open source →
  13. 0.7.0 04 Nov 2023
    Release notes
    • Support no_std environments, when default-features = false is set for the crate
    Open source →
  14. 0.6.0 13 Oct 2023
    Release notes
    • Refactor crate exports such that everything other than constants are now top-level exports
      • typed_path::unix::UnixComponent is now typed_path::UnixComponent
      • typed_path::unix::Utf8UnixComponent is now typed_path::Utf8UnixComponent
      • typed_path::windows::WindowsComponent is now typed_path::WindowsComponent
      • typed_path::windows::Utf8WindowsComponent is now typed_path::Utf8WindowsComponent
      • typed_path::windows::WindowsPrefix is now typed_path::WindowsPrefix
      • typed_path::windows::Utf8WindowsPrefix is now typed_path::Utf8WindowsPrefix
    • Constants are now located within the constants module, broken out by unix and windows modules to house each set of constants
    • TypedPath and Utf8TypedPath now match the method signature of Path for constructing self with ::new(...)
    • Majority of methods available for Path and PathBuf have been ported over to TypedPath and TypedPathBuf
    • Implement std::fmt::Display for Utf8UnixComponent, Utf8WindowsComponent, and Utf8TypedComponent
    Open source →
  15. 0.5.0 28 Sep 2023
    Release notes
    • Add TypedPath, Utf8TypedPath, TypedPathBuf, and Utf8TypedPathBuf enums to support code that can operate on both Windows and Unix paths
    Open source →
  16. 0.4.2 20 Sep 2023
    Release notes
    • Add From<&Utf8NativePath> for std::path::PathBuf
    Open source →
  17. 0.4.1 18 Sep 2023
    Release notes
    • Add AsRef<std::path::Path> for Utf8NativePath and Utf8NativePathBuf
    • Add From<Utf8NativePathBuf> for std::path::PathBuf
    • Add rustfmt.toml to dictate formatting using cargo +nightly fmt --all
    Open source →
  18. 0.4.0 23 Aug 2023
    Release notes
    • Add normalize method to Path and Utf8Path to support resolving . and .. across Windows and Unix encodings
    • Add is_parent and is_current methods to Component and Utf8Component traits with implementations for both Unix and Windows component implementations
    • Add root, parent, and current static methods to Component and Utf8Component traits to support creating the instances from generics
    • Add absolutize to both normalize the path and - in the case of relative paths - prefix the path with the current working directory
    • Add with_encoding to Path and Utf8Path support converting between the Unix and Windows encoding types
    • Add utils::current_dir and utils::utf8_current_dir to retrieve the current working directory as either a PathBuf or Utf8PathBuf
    • Add with_unix_encoding and with_windows_encoding to Path and Utf8Path support converting between the Unix and Windows encoding types
    • Add has_unix_encoding and has_windows_encoding to Path and Utf8Path to detect explicit encodings
    Open source →
  19. 0.3.2 27 Mar 2023
    Release notes
    • Fix implementation of Display for Utf8Path to use underlying str Display instead of Debug
    Open source →
  20. 0.3.1 14 Mar 2023
    Release notes
    • Fix joining of empty path with relative path resulting in absolute path when using UnixPath::join or Utf8UnixPath::join (#6)
    Open source →
  21. 0.3.0 15 Feb 2023
    Release notes
    • Add Clone implementation for Box<Path<T>> and Box<Utf8Path<T>>
    • Fix Clone implementation for PathBuf<T> and Utf8PathBuf<T> requiring a clone implementation for the encoding, which is not necessary (#5)
    • Update Debug implementation for Path<T>, Utf8Path<T>, PathBuf<T>, and Utf8PathBuf<T> to no longer require debug implementation for encoding, which is not necessary
    • Add label method to encoding implementations, used for debugging purposes
    Open source →
  22. 0.2.1 12 Dec 2022
    Release notes
    • Update README with more UTF8 examples and add proper testing of README examples via doctest
    Open source →
  23. 0.2.0 12 Dec 2022
    Release notes
    • Added UTF-8 variants of Path, PathBuf, Components, Component, and other data structures to support str versus [u8]
    • Remove requirements of Clone, Debug, Display, and Sized on Encoding and subsequent implementations UnixEncoding and WindowsEncoding
    Open source →
  24. 0.1.0 25 Aug 2022
    Release notes

    Initial release of the library!

    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