Crate home

source ·
Expand description

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.

See also the dirs crate.

Note that as of 2019/08/06 it appears that cargo uses this crate. And rustup has used this crate since 2019/08/21.

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 libraries definition - they use the definition here.

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 also this discussion.

Functions

Returns the storage directory used by Cargo, often knowns as .cargo or CARGO_HOME.
Returns the storage directory used by Cargo within cwd. For more details, see cargo_home.
Returns the path of the current user’s home directory if known.
Returns the storage directory used by rustup, often knowns as .rustup or RUSTUP_HOME.
Returns the storage directory used by rustup within cwd. For more details, see rustup_home.