| # NormPath |
| |
| This crate provides methods to normalize paths in the recommended way for the |
| operating system. |
| |
| It was made to fix a recurring bug caused by using [`fs::canonicalize`] on |
| Windows: [#45067], [#48249], [#52440], [#55812], [#58613], [#59107], [#74327]. |
| Normalization is usually a better choice unless you specifically need a |
| canonical path. |
| |
| [![GitHub Build Status](https://github.com/dylni/normpath/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/dylni/normpath/actions/workflows/build.yml?query=branch%3Amaster) |
| |
| ## Usage |
| |
| Add the following lines to your "Cargo.toml" file: |
| |
| ```toml |
| [dependencies] |
| normpath = "1.3" |
| ``` |
| |
| See the [documentation] for available functionality and examples. |
| |
| ## Rust version support |
| |
| The minimum supported Rust toolchain version is currently Rust 1.74.0. |
| |
| Minor version updates may increase this version requirement. However, the |
| previous two Rust releases will always be supported. If the minimum Rust |
| version must not be increased, use a tilde requirement to prevent updating this |
| crate's minor version: |
| |
| ```toml |
| [dependencies] |
| normpath = "~1.3" |
| ``` |
| |
| ## License |
| |
| Licensing terms are specified in [COPYRIGHT]. |
| |
| Unless you explicitly state otherwise, any contribution submitted for inclusion |
| in this crate, as defined in [LICENSE-APACHE], shall be licensed according to |
| [COPYRIGHT], without any additional terms or conditions. |
| |
| ### Third-party content |
| |
| This crate includes copies and modifications of content developed by third |
| parties: |
| |
| - [src/cmp.rs] and [tests/rust.rs] contain modifications of code from The Rust |
| Programming Language, licensed under the MIT License or the Apache License, |
| Version 2.0. |
| |
| - [src/common/localize/macos/fruity.rs] contains modifications of code from |
| crate [fruity], licensed under the MIT License or the Apache License, |
| Version 2.0. |
| |
| See those files for more details. |
| |
| Copies of third-party licenses can be found in [LICENSE-THIRD-PARTY]. |
| |
| [#45067]: https://github.com/rust-lang/rust/issues/45067 |
| [#48249]: https://github.com/rust-lang/rust/issues/48249 |
| [#52440]: https://github.com/rust-lang/rust/issues/52440 |
| [#55812]: https://github.com/rust-lang/rust/issues/55812 |
| [#58613]: https://github.com/rust-lang/rust/issues/58613 |
| [#59107]: https://github.com/rust-lang/rust/issues/59107 |
| [#74327]: https://github.com/rust-lang/rust/issues/74327 |
| [COPYRIGHT]: https://github.com/dylni/normpath/blob/master/COPYRIGHT |
| [documentation]: https://docs.rs/normpath |
| [fruity]: https://crates.io/crates/fruity |
| [`fs::canonicalize`]: https://doc.rust-lang.org/std/fs/fn.canonicalize.html |
| [LICENSE-APACHE]: https://github.com/dylni/normpath/blob/master/LICENSE-APACHE |
| [LICENSE-THIRD-PARTY]: https://github.com/dylni/normpath/blob/master/LICENSE-THIRD-PARTY |
| [src/cmp.rs]: https://github.com/dylni/normpath/blob/master/src/cmp.rs |
| [src/common/localize/macos/fruity.rs]: https://github.com/dylni/normpath/blob/master/src/common/localize/macos/fruity.rs |
| [tests/rust.rs]: https://github.com/dylni/normpath/blob/master/tests/rust.rs |