Crate Selection

Choose Dependencies for your Project

The Rust standard library is fairly minimal (on purpose). Besides providing basic data types, the standard library is largely concerned with abstracting over differences in common platforms, e.g., Windows and Unix derivatives.

Instead, major functionality like regular expressions, random numbers, cryptography, serialization, async, and logging, are found in separate Rust crates that are available on crates.io↗. Rustaceans add these crates to their projects via the cargo package manager.

A common complaint from new Rust developers is that they don't know which crates they ought to use.

Use this Book to Select Crates for your Project

It is the main purpose of this book to provide expansive coverage of "key" or "foundational" crates - those crates that make up the most common programming tasks.

  1. Browse the left sidebar for a relevant category.
  2. Search by keyword for recipes for your specific problem.
  3. Consult the index of examples.
  4. Consult the word_index.
  5. Consult Crates by Alphabetical Order and Crates by Category.
  6. Use this book's links to Rust documentation, books, videos, cheatsheets, etc.
  7. The Example Code and Templates chapter provides lists of popular Rust repositories.

Crate Recommendations

You may also use the following sites for crate recommendations:

You can also search or post on Rust chat servers and forums - see Blogs and Forums.

Additional Lists & Reviews

You may also consult older resources, such as:

Understand the State of the Rust Ecosystem

You will find below links to "Are we ... yet?" websites and similar. They list key libraries and tools and provide an idea of the current state of the art in a given domain.

Note that several of these websites are out-of-date. Are We Rust Yet?↗ list their last commit date and update frequency.