README.md
1# Dunce (de-UNC)
2
3In Windows the regular paths (`C:\foo`) are supported by all programs,
4but have lots of bizarre restrictions for backwards compatibility with MS-DOS.
5There are also Windows NT UNC paths (`\\?\C:\foo`), which are more robust and with fewer gotchas,
6but are rarely supported by Windows programs. Even Microsoft's own!
7
8This crate converts Windows UNC paths to the MS-DOS-compatible format whenever possible,
9but leaves UNC paths as-is when they can't be unambiguously expressed in a simpler way.
10This allows legacy programs to access all paths they can possibly access,
11and doesn't break any paths for UNC-aware programs.
12
13In Rust the worst UNC offender is the `fs::canonicalize()` function. This crate provides
14a drop-in replacement for it that returns paths you'd expect.
15
16On non-Windows platforms these functions leave paths unmodified, so it's safe to use them
17unconditionally for all platforms.
18