• Stars
    star
    1,925
  • Rank 24,079 (Top 0.5 %)
  • Language
    Rust
  • License
    MIT License
  • Created almost 5 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Rust Programming Fundamentals - one course to rule them all, one course to find them...

Ultimate Rust Crash Course

This is the companion repository for the Ultimate Rust Crash Course published online, presented live at O'Reilly virtual events, or in person. You will get the most out of this training experience by trying to accomplish the exercises in this repository and watching (or attending) the instructor-led training.

In other words, this repository is for you hands-on-learners!

I use macOS, and that is what I developed this course on. Everything ought to work similarly on major Linux distributions and Windows. Please contact me ASAP if you have trouble with anything on this page.

Did you like this course? Check out the next one: Ultimate Rust 2: Intermediate Concepts

Install Rust

Rust is required for this course! The latest stable version is always recommended.

  • Go to rust-lang.org and click on the Get Started button and follow the instructions to install Rust for your operating system.
    • Please DO NOT install rust via some other package manager. It will probably be a version that is really old.

You should get somewhat similar output if you run commands like the ones below (newer versions are okay). If you already have an old version of Rust installed, then run rustup update to install a newer version.

$ rustc --version
rustc 1.54.0 (a178d0322 2021-07-26)
$ cargo --version
cargo 1.54.0 (5ae8d74b3 2021-06-22)
  • Clone or download this repository to your computer.

Prepare Your Development Environment

Please do the following (see the How To Learn Rust page for details on all of these)

  • Choose an IDE (or Editor) and configure it with Rust support and customize it to your liking
    • VS Code users: Please use the rust-analyzer extension. If you have the rust extension installed, please uninstall it!
    • IntelliJ users: Please use the intellij-rust extension.
  • Choose one place to "find answers" and either introduce yourself (if it's a forum, IRC, etc.) or find the answer to one question you have.
  • Try doing something in Rust! If you don't have a better idea, then just do this:
    • cargo new message
    • cd message
    • cargo run
    • Edit src/main.rs and change the message.
    • cargo run again to see your new message.
  • Check out the descriptions of the tools and books.

Training!

Now you are ready for the training! Go watch the Ultimate Rust Crash Course (or attend the live session) and come back here for the exercises.

Resources

Exercises

Please clone this repository! These exercises are designed as Rust projects for you to edit on your own computer, with the exception of Exercise A (which is just a README.md file).

The exercises are separate Rust projects inside the exercises/ subdirectory. For each exercise, you should:

  • Open the correspondingexercise/EXERCISE_NAME directory in your IDE/Editor
    • Seriously, just open the individual exercise directory in your IDE. If you open the entire repository, your IDE will probably complain that it sees multiple Rust projects.
  • Navigate to the same directory with your Terminal application (so you can run cargo run, etc.)
  • Open up the src/main.rs file.
  • Follow the numbered exercise instructions in the code comments.

If you encounter any problems with the exercises, please feel free to use the online course communication tools to contact me, or open an discussion. Either way. 😄

For your convenience, here is a list of all the exercises, with links to view the code on GitHub.

Projects

  • Invaders - A terminal-based Space Invaders arcade game clone.

More Repositories

1

green

Green is a clean, colorful, fast python test runner.
Python
795
star
2

rusty_engine

2D game engine for learning Rust
Rust
366
star
3

ultimate_rust2

The best Intermediate Rust course out there!
Rust
256
star
4

invaders

Open source terminal arcade game with audio - based off of the classic "Space Invaders"
Rust
202
star
5

rust_programming

Rust Programming: A Crash Course
68
star
6

rusty_sword_arena

Rusty Sword Arena: A Crash Course in Rust (Companion repository to the OSCON tutorial)
Rust
48
star
7

headtail

head and tail simultaneously
Rust
43
star
8

bevy_template

Compile-time optimized Bevy project template
Shell
27
star
9

rusty_sword

Rusty Sword: Game of Infamy!
Rust
14
star
10

rusty_audio

Fun & easy audio playback library.
Rust
9
star
11

bevy_rapier2d_assets

A plugin to make it easy to load 2d physics assets from disk
Rust
9
star
12

pipeviewer

Companion project for the hands-on Rust course I produced for Packt
Rust
9
star
13

shooting_stars

On a starry night, in a field, shooting stars fall from the sky...and Ferris (and his friends) compete to catch them.
Rust
9
star
14

UnrealEngineHelper

Settings, templates, workflow information. Things that help when working with UnrealEngine.
Python
6
star
15

cleancut

6
star
16

bevy_cleancut

Random utility stuff for bevy for my personal use. You're welcome to use it, too, if you like.
Rust
4
star
17

punchball

Punch Ball
Rust
4
star
18

examine

Practice creating grpc services and clients with buf.build, Rust, and tonic
Rust
3
star
19

vc

vc is an implementation of Git in Rust
Rust
3
star
20

rusty_racing

Rusty Racing: A Crash Course in Rust (Companion repository to the OSCON 2020 tutorial)
3
star
21

rusty_textui

Library for creating simple text user interfaces, like text arcade games in the terminal
Rust
3
star
22

duel

An independent re-write of the client for Rusty Sword Arena, with tags for the various stages. This repository will be deleted if RSA gets refactored.
Rust
3
star
23

bevy_pause

A very simple pause plugin for Bevy
Rust
3
star
24

shell_cmds

Port Apple's various shell commands from C to Rust
Rust
2
star
25

dotfiles

My dotfiles
Shell
2
star
26

spaceblasters

A space wars-like game prototype created for the Utah Rust User Group's mini-game jam
Rust
2
star
27

leafwingbug

Demonstrate a bug
Rust
1
star
28

rusty_time

A simple timer
Rust
1
star
29

r_circlegauntlet

Open source game using Rusty Engine: Blue circle trying to reach green circle without touching red circles
Rust
1
star
30

cirena

Circles in an arena. A simple game prototype.
Rust
1
star
31

rolling

Quick demo of a rolling game
Rust
1
star
32

typing

Playing around with teaching typing
Shell
1
star
33

chat_app

just doing a ruby on rails tutorial
Ruby
1
star