Setting Up A Windows Workstation for Rust Development
Getting Rust
Let’s start with installing Rust itself.
Installing the standard way
The rust-lang.org site has the current installers which you can download and install.
Installing the rustup way
My preferred method is using rustup.rs.
invoke-restmethod -usebasicparsing 'https://static.rust-lang.org/rustup/dist/i686-pc-windows-gnu/rustup-init.exe' -outfile 'rustup-init.exe'
rustup-init.exe
That will pick the correct stable build (and allow you to customize) based on your system architecture. Read more about rustup.rs here.
After installing Rust
You’ll need to restart your shell for the new path additions to be picked up.
Then you should be able to rustc --version
.
If you get an error complaining about the lack of msvcr120.dll (for the stable-x86_64-pc-windows-msvc
target triple) or no output from rustc --version
, you’ll need the VS 2013 Visual C++ Runtime which you can grab from chocolatey.
choco install vcredist2013
Supporting Tools
If you are going to compile rust apps for the Microsoft Visual C++ runtime, you’ll need the Visual C++ build tools. If you have Visual Studio (with the C++ build tools) you are all set. Otherwise, you’ll need the standalone Visual Studio Build Tools. Or via chocolatey -
choco install visualcppbuildtools
and if you want the C# and VB.net tools as well,
choco install microsoft-build-tools
Now, you are ready to write some rust!
Working environment
If you did not use rustup-init
to install your rust environment, you’ll want to make sure %USERPROFILE%/.cargo/bin
is on your path. Cargo is the package management tool for rust and that folder is where it drops binaries that it installs.
2/12/2017 UPDATE: Rusty Code has been languishing. There is a more actively developed fork - Rust
, which I’m just starting to try out.
I’ve become rather fond of Visual Studio Code, so I was happy to find a rust extension - Rusty Code.
Rusty Code (and the newer fork, Rust) works best with a bit of setup.
- Install rustfmt -
cargo install rustfmt
- Install racer -
cargo install racer
- Install rustsym -
cargo install rustsym
- Clone a copy of the Rust sources -
git clone https://github.com/rust-lang/rust
- Set a
CARGO_HOME
enviromental variable -[Environment]::SetEnvironmentalVariable('CARGO_HOME', "$env:USERPROFILE/.cargo")
- Add the following settings to your user or workspace preferences in VS Code. You’ll want to change the rust source path to wherever you cloned it. NOTE: You aren’t just setting the path to the cloned repo, but to the src directory in the cloned repo. And VS Code requires the escaped backslashes.
{
"rust.racerPath": null, // Specifies path to Racer binary if it's not in PATH
"rust.rustLangSrcPath": "C:\\Users\\Steven\\source\\github\\rust-lang\\rust\\src", // Specifies path to /src directory of local copy of Rust sources
"rust.rustfmtPath": null, // Specifies path to Rustfmt binary if it's not in PATH
"rust.rustsymPath": null, // Specifies path to Rustsym binary if it's not in PATH
"rust.cargoPath": null, // Specifies path to Cargo binary if it's not in PATH
"rust.cargoHomePath": null, // Path to Cargo home directory, mostly needed for racer. Needed only if using custom rust installation.
"editor.formatOnSave": true, // Run `rustfmt` on save.
}