Welcome to Rust!

Rust is a multi-paradigm, C family language with some significant differences in semantics and syntax, focused on safety and concurrency. We'll be starting you off with basic Rust syntax, before moving through Rust's pointers, data structures, concurrency, part of the standard library, and the rest of the language. For some of the areas in which Rust is most different from other languages with which you might already be familiar, we'll try to provide examples of equivalent code in both Rust and one or two more common languages (generally, Java and C++).

At the end of the tutorial, we'll introduce a few final concepts and apply them in concert with the rest of the information you'll have learned to create an implementation of MapReduce in Rust.

This tutorial is designed to expand upon and build off of the tutorial offered at rust-lang.org, going in greater depth and (optimally) providing a better explanation of certain topics.

If you haven't already installed Rust, that would be a good first step. There are excellent guides over at the official site which should help you with this process.

Next: Getting Started: Variables, Functions, and Syntax

Full Table of Contents

1. Getting Started: Variables, Functions, and Syntax
2. Starting to Corrode: Pointers, Memory, Strings, and I/O
3. Multi-Purpose Maps: Structures, Traits, and Higher-Order Functions
4. Multi-Tasking: Tasks and Communication
(More to be posted later)

This tutorial was created by Alex Lamana, Rob Michaels, Wil Thomason, and David Evans for University of Virginia cs4414 Spring 2014.