*[cargo](https://crates.io/), build system and package/crate manager
*[cargo-update](https://crates.io/crates/cargo-update), cargo sub-command to manage crate updates
*[xargo](https://crates.io/crates/xargo) Systoot manager to build for non-`std` targets
Various other Rust tools you might find useful
*[rls](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust), Rust support for Visual Studio Code
*[racer](https://crates.io/crates/racer/), Code completion for Rustbuild system and package/crate manager
*[rustfmt](https://crates.io/crates/rustfmt), Tool to find and fix Rust formatting issues
*[itm](https://crates.io/crates/itm) Tool to parse and dump ITM packets
* add here your favorite crates
Other tools and packages
*[rls](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust), Rust support for Visual Studio Code
*[rustdt](http://rustdt.github.io/), Rust support for the Eclipse platform
* add here your favorite tools supproting Rust development
# Installation
We suggest a linux or OSX development environment, though Rust related tools are also available under Windows. Install [rustup](https://www.rustup.rs/), Rust tool-chain manager using the link, and go from there.
# Rustup
The [rustup](https://www.rustup.rs/), tool manager allows you to manage multiple tool chain installations. Nightly tool chains allow for the development of libraries and applations including `unsafe` code (which will be necessary for the later excercises). For some tools to work (rls//)
# Rust Crates
A crate is a unit of compilation, being either a library or an application. Crates are managed (compiled, installed, removed, updated, etc.) by the [cargo](https://crates.io/) tool.