# Normalize file paths
[](https://crates.io/crates/normalizefs)
[](https://unlicense.org)
[](https://blog.rust-lang.org/2021/10/21/Rust-1.56.0.html)
[](https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html)
[](https://deps.rs/repo/gitlab/hsn10/normalizefs)
[](https://docs.rs/normalizefs)
[](https://crates.io/crates/normalizefs/versions)
[](https://github.com/XAMPPRocky/tokei)
### Normalize file system path
This rust library have several functions:
1. Test if path is an absolute
2. Normalize path
3. Join paths
4. Canonicalize path
Independant clean room implementation with testcases and
support for both windows and unix path styles.
You can
request normalization style you want at any platform by
activating features _posix_ and _windows_. If you activate
feature posix then posix style normalization will be always
available under name _normalize_posix_.
### Normalization rules
1. Trailing slash indicating a directory is preserved. This is
different from Python where tailing slash is removed.
2. If path is not absolute, normalized form can go to upper
directory. This is similar to Python and JavaScript.
3. Drive letters are normalized to upper case
4. UNC server and share are normalized to lower case
## License
This is free and unencumbered software released into the public domain.
This code can be used under terms of [CC0](https://creativecommons.org/publicdomain/zero/1.0/) or
the [Unlicense](https://unlicense.org).
