Canonical definitions of home_dir
, cargo_home
, and rustup_home
.
This provides the definition of home_dir
used by Cargo and rustup,
as well functions to find the correct value of CARGO_HOME
and
RUSTUP_HOME
.
The definition of home_dir
provided by the standard library is
incorrect because it considers the HOME
environment variable on
Windows. This causes surprising situations where a Rust program will
behave differently depending on whether it is run under a Unix
emulation environment like Cygwin or MinGW. Neither Cargo nor rustup
use the standard library's definition - they use the definition here.
Note: This has been fixed in Rust 1.85 to no longer use the HOME
environment variable on Windows. If you are still using this crate for the
purpose of getting a home directory, you are strongly encouraged to switch to
using the standard library's home_dir
instead. It is planned to have the
deprecation notice removed in 1.86.
This crate further provides two functions, cargo_home
and
rustup_home
, which are the canonical way to determine the location
that Cargo and rustup store their data.
See rust-lang/rust#43321.
This crate is maintained by the Cargo team, primarily for use by Cargo and Rustup and not intended for external use. This crate may make major changes to its APIs or be deprecated without warning.
License
MIT OR Apache-2.0