The ecosystem of crates

Compared to other languages, you will see that there is a tendency in Rust to move functionalities out of the core language into their own crates. It serves to keep the standard library small, thereby reducing the size of compiled apps. This is done, for example, for working with dates and times (see next section), or for providing special concurrency primitives.

An ever-growing ecosystem of crates for Rust is at your disposal at https://crates.io/, with nearing 11,000 crates in stock at the time of writing (Sep 2017). This repository site is also a showcase, because it is written in Rust! You can search for crates on specific keywords or categories, or browse them alphabetically or on the number of downloads. Find their documentation at http://docs.rs.

At Awesome Rust (https://github.com/rust-unofficial/awesome-rust), you can find a curated list of Rust projects; this site only contains useful and stable projects, and indicates whether they compile against the latest Rust version.

The Rust Cookbook (https://rust-lang-nursery.github.io/rust-cookbook/) provides a growing set of code recipes using common crates.

In general, it is advisable that you search for crates that are already available whenever you embark on a project that requires specific functionality. There is a good chance that a crate that conforms to your needs already exists, or perhaps you can find some usable starting code upon which to build exactly what you need. Take into consideration the number of downloads and when the crate was last updated; a popular and actively updated crate is most likely of higher quality.