rust-learning
A bunch of links to blog posts, articles, videos, etc for learning Rust. Feel free to submit a pull request if you have some links/resources to add. Also, I try to verify that the articles below have some real content (i.e. aren't 2 paragraph blog posts with little information) to ensure I'm not listing "fluff" pieces. If you have an idea for a better way to organize these links, please let me know.
Introduction
The main documentation is always the best beginning, so if you haven't read yet, start by reading Rust docs. You also have an ebook version of the doc.
Tags meanings
- [official] Something made by a mozilla worker in a mozilla context
- [old] Concepts are still useful but code could not compile.
- [WIP] Work In Progress
Table of Contents
- Books
- Videos
- Podcasts
- Rust in practice
- Best Practices/Style Guides
- Cheat sheets
- RFCs
- Code Organization
- Compilation
- CI / Testing
- Comparison with Other Languages
- Applications / Libraries / Tools
- Language stuff
- Locale links
- People
- Tutorials & Workshop Materials
Books
- [official] The Rust Programming Language
- [official] The Rustonomicon - The Dark Arts of Advanced and Unsafe Rust Programming
- Why Rust? - Jim Blandy
- Rust-101 - Ralf Jung
- Rust Essentials - Ivo Balbaert
- [WIP] Programming Rust - Jim Blandy
- [KickStarter] Rust Programming Concepts Book - Matt Carkci
Videos
You can watch Rust's meetups at air.mozilla
- [official] Stanford Seminar - Aaron Turon
- [official] The Rust Programming Language - Alex Crichton
- [official] RustCamp 2015
- OReilly's Programming in Rust - Jim Blandy
- My Python's a little Rust-y - Dan Callahan
- What Is Rust? - Yehuda Katz
- Rustlang Screencasts - J M Archer
- LambdaConf 2015 - In Rust We Trust - Alex Burkhart
Podcasts
- Rusty radio - Alex Newman
- New rustacean - Christopher Krycho
Rust in practice
- [official] [WIP] rustbyexample - Jorge Aparicio and Steve Klabnik
- rosettacode - Andrew Hobden
- Why your first FizzBuzz implementation may not work - Chris Morgan
- An annotation of the Rust standard library - Brian Anderson
- ProjectEulerRust - gifnksm
- ArcadeRS - Jessy Pelletier
- Rust in Detail: Writing Scalable Chat Service from Scratch - Nikita Baksalyar
- rustlings: small rust exercises - Carol Nichols
- Learning Rust With Entirely Too Many Linked Lists - Alexis Beingessner
- The Rust FFI Omnibus - Jake Goulding
- Let's build a browser engine! - Matt Brubeck
- Understanding Over Guesswork - Andrew Hobden
- Writing an OS in Rust - Philipp Oppermann
- Creating Nintendo 64 emulator from scratch in Rust! - Jake Taylor
- The Many Kinds of Code Reuse in Rust - Alexis Beingessner
- Make a Lisp - Joel Martin
Best Practices/Style Guides
- [official] [WIP] Rust Guidelines
- Rust Design Patterns - Nick Cameron
- Error Handling in Rust - Andrew Gallant
- Reading Rust Function Signatures - Andrew Hobden
- Good Practices for Writing Rust Libraries - Pascal Hertleif
- Rustic Bits - Llogiq
Cheat sheets
- [official] Syntax Index
- The Periodic Table of Rust Types - Kang Seonghoon
- Rust Iterator Cheat Sheet - Daniel Keep
- Rust String Conversions Cheat Sheet - GavinB
RFCs
See Rust RFCs
Code Organization
None
Compilation
- rust-cross, Everything you need to know about cross compiling Rust programs! - Jorge Aparicio
- How to cross compile Rust from OS X to FreeBSD - yohanesu75
CI / Testing
- Helping Travis catch the rustc train part 1 | part 2 - Huon Wilson
- Rust, Travis, and Github Pages - Andrew Hobden
- How to collect test coverages for a rust project - lifthrasiir
Comparison with Other Languages
- Rust for Rubyists - Steve Klabnik
- Rust for C++ Programmers - Nick Cameron
- A Swift guide to Rust - sealedabstract
- A Quick Comparison of Nim vs. Rust - Arthur Liao
- Rust's Ownership model for JavaScript developers - Christoph Burgdorf
- A Rust Contributor Tries Their Hand at Go - Manish Goregaokar
- Rust for Python Programmers - Armin Ronacher
- Rust for Clojurists - Zach Oakes
- On rust's memory management. Mainly for C/C++ programmers - Robert
- Comparing Rust and Java - Llogiq
- Exploring Rust (from C#) - Nicholas Blumhardt
Applications / Libraries / Tools
See the awesome repo kud1ing/awesome-rust
Language stuff
Closures
- Finding Closure in Rust - Huon Wilson
- Defaulting to Thread-Safety: Closures and Concurrency - Huon Wilson
- How to pass a closure into a trait object - Cam Jackson
Enums
Iterators
Lifetime
- Where Rust Really Shines - Manish Goregaokar
- Understanding Lifetime in Rust part 1 | part 2 - Bibhas Bhattacharya
- Rust Lifetimes - Charles
Macros
- A Practical Intro to Macros in Rust 1.0 - Daniel Keep
- The Little Book of Rust Macros - Daniel Keep
- Macros in Rust part 1 | part 2 | part 3 | part 4 - Nick Cameron
Monads
- Option Type part 1 | part 2 - 8thlight
- [old] Option Monads in Rust - Andrew Hobden
Ownership / Concurrency
- [official] Fearless Concurrency with Rust - Aaron Turon
- Rust ownership, the hard way - Chris Morgan
- An alternative introduction to Rust - Steve Klabnik
- The Problem With Single-threaded Shared Mutability - Manish Goregaokar
- Wrapper Types in Rust: Choosing Your Guarantees - Manish Goregaokar
- Strategies for solving 'cannot move out of' borrowing errors in Rust - Herman J. Radtke III
- Why Rust's ownership/borrowing is hard - Ivan Sagalaev
Strings
Syntax extensions
- Syntax extensions and regular expressions for Rust - Andrew Gallant
- How to Write a Rust Syntax Extension - Gulshan Singh
Traits
- [official] Abstraction without overhead: traits in Rust - Aaron Turon
- A series on trait objects part 1 | part 2 | part 3 | part 4 - Huon Wilson
- Rust traits for developer friendly libraries - Ben Ashford
- Traits and trait objects - Matt Godbolt
- Rust's Built-in Traits, the When, How & Why - Llogiq
- Where are you From::from - Llogiq
- Going down the rabbit hole with Rust traits - Jonathan Turner
Unsafe
- Unsafe Rust: An Intro and Open Questions - Alexis Beingessner
Locale links
People
This is the official Rust Team and Servo Team
You search for a rustacean ? http://www.rustaceans.org/
You want to meet them IRL ? Meetup groups, community calendar, RustCamp.
You looking for a job ? Rust Community Job Board
Famous Rustacean Bloggers
- Andrew Gallant - blog
- Andrew Hobden - blog
- Brian Anderson - blog
- Christoph Burgdorf - blog
- Chris Morgan - blog
- Felix S Klock II - blog
- Huon Wilson - blog
- Jonathan Turner - blog
- Llogiq - blog
- Manish Goregaokar - blog
- Nick Cameron - blog
- Niko Matsakis - blog
- Patrick Walton - blog
- Yehuda Katz - blog
- Steve Klabnik - blog
Don't forget Ferris the unofficial mascot.
Tutorials & Workshop Materials
These are slides and materials from brick-and-mortar workshops about Rust. While they're unlikely to help a student learning independently, they may be of interest if you're running a workshop on Rust.
- Niko Matsakis's rust tutorializer framework
- Niko Matsakis's concurrency tutorial from December 2015
- Niko Matsakis's Mozlando Tutorial includes slides and play.rust-lang.org demos
- Jim Blandy's exercises
- Dan Callahan's Python Rust FFI examples
- Nick Cameron's oopsla slides and exercises
- Florian Gilcher's mailbox tutorial takes Hello World to a whole new concurrent and networked level