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.
Do you need to be convinced that Rust worth learning? Let us show you the True Nature of the Force
The main documentation is always the best beginning, so if you haven't read yet, start by reading Rust docs. You also have ebook versions of the doc here and there.
- ⭐ Something made by a rust team member.
- 🔚 Concepts are still useful but code could not compile.
- 🔜 Work In Progress.
- Books
- Videos
- Podcasts
- Rust in practice
- Best Practices/Style Guides
- Cheat sheets
- Rust internals
- Compilation
- FFI
- CI / Testing
- Debug / Profiling
- Are we ... yet?
- Comparison with Other Languages
- Applications / Libraries / Tools
- Language stuff
- Playground
- Locale links
- People
- Tutorials & Workshop Materials
- Similar projects
- ⭐ The Rust Programming Language 1st edition - repo
- ⭐ The Rust Programming Language 2nd edition - repo (Paper edition)
- ⭐ The Rust Reference - repo
- ⭐ The Rustonomicon - The Dark Arts of Advanced and Unsafe Rust Programming - repo
- ⭐ The Unstable Book - repo
- ⭐ The Rust Edition Guide - repo
- ⭐ Why Rust? - Jim Blandy
- Rust-101 - Ralf Jung
- Rust Essentials - Ivo Balbaert
- Programming Rust - Jim Blandy, Jason Orendorff
- Mastering Rust - Vesa Kaihlavirta
- ⭐ Rust Anthology - Brian Anderson
- 🔜 Rust in Action - TS McNamara
- Network Programming in Rust - Abhishek Chanda
- Learning Rust - Paul Johnson, Vesa Kaihlavirta
- Rust Cookbook - Vigneshwer Dhinakaran
- Learning Rust - Dumindu Madunuwan
- A Gentle Introduction To Rust - Steve Donovan
- Step Ahead with Rust - Jonathan Creekmore
- ⭐ Rust Programming By Example - Guillaume Gomez and Antoni Boucher
- Beginning Rust - From Novice to Professional - Carlo Milanesi
- Hands-On Concurrency with Rust - Brian Troutwine
- Hands-On Functional Programming in Rust - Andrew Johnson
- ⭐ Rust and the Future of Systems Programming - Mozilla
- air.mozilla Rust's meetups
- RustFest Zürich 2017
- J M Archer Tutorials - J M Archer
- ABitWiseGuy Tutorials - ABitWiseGuy
- dcode Tutorials - dcode
- Tensor Programming Tutorials - Tensor Programming
- Hello Rust! - Matthias Endler
- YouCodeThings - Andrew Jakubowicz
- ⭐ 🔜 Rust in Motion - Video course by Carol Nichols and Jake Goulding
- 2017-06-20 - ⭐ Rust: Putting Ownership to Use - Niko Matsakis
- 2017-01-20 - Rust 101 - E. Dunham
- 2016-09-28 - Mozilla's Rust and why we love it - Cambridge Consultants
- 2016-09-25 - ⭐ into_rust() - Screencasts for learning rust! - Niko Matsakis
- 2016-08-28 - ⭐ Rust: Safe and Scalable Systems Programming - Alex Crichton
- 2016-06-21 - ⭐ The History of Rust - Steve Klabnik
- 2015-08-01 - ⭐ RustCamp 2015
- 2015-06-22 - LambdaConf 2015 - In Rust We Trust - Alex Burkhart
- 2015-06-13 - ⭐ What Is Rust? - Yehuda Katz
- 2015-04-11 - My Python's a little Rust-y - Dan Callahan
- 2015-03-12 - ⭐ Stanford Seminar - Aaron Turon
- Moves and Borrowing In Rust With Jim Blandy - Adam Bell
- New Rustacean - Chris Krycho
- The Request for Explanation Podcast: A weekly discussion of Rust RFCs - Manish Goregaokar
- Rust And Bitter C++ Developers With Jim Blandy - Adam Bell
- Rusty Spike Podcast – A podcast for Rust and Servo - Jonathan Turner
- ⭐ 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
- Advent of Code - Denys Levchenko
- 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
- ⭐ Let's build a browser engine! - Matt Brubeck
- Understanding Over Guesswork - Andrew Hobden
- Writing an OS in Rust 1st edition 2nd edition - 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
- ⭐ Modeling Graphs in Rust Using Vector Indices - Niko Matsakis
- 24 days of Rust series - Zbigniew Siciarz
- ⭐ Rust Cookbook
- ⭐ Rust and CSV Parsing - Andrew Gallant
- Algorithm Cookbook in Rust - Aram Ebtekar
- ⭐ stdx - The missing batteries of Rust - Brian Anderson
- Writing a Command Line Tool in Rust - Matt Gathu
- Rust - exercism.io
- Intro to Rust using Permission-based Authorization - Darin Gordon
- Building a DNS server in Rust - Emil Hernvall
- Rust Crash Course - Michael Snoyman
- ⭐ 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
- Pretty State Machine Patterns in Rust - Andrew Hobden
- Elegant Library APIs in Rust - Pascal Hertleif
- ⭐ Rust API guidelines - Brian Anderson
- Rust Performance Pitfalls - Llogiq
- ⭐ Syntax Index
- The Periodic Table of Rust Types - Kang Seonghoon
- Rust Iterator Cheat Sheet - Daniel Keep
- Rust String Conversions Cheat Sheet - GavinB
- Rustic Symmetries - kmc
- Rust Container Cheat Sheet - Raph Levien
- Graphical depiction of ownership and borrowing in Rust - Phil Ruffwind
- Lifetime Reference - Charles
- Phaiax's Rust Cheatsheet - Phaiax
- Rust Language Cheat Sheet - Ralf Biedert
- ⭐ Rust RFCs and Accepted RFCs
- ⭐ Rust Forge
- ⭐ Internals Forum
- 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
- Cross Compiling for Raspberry Pi - Ogeon
- ⭐ Taking Rust everywhere with rustup - Brian Anderson
- Why is a Rust executable large? - Kang Seonghoon
- Using Rust in Windows - Jonathan Turner
- Rust your ARM microcontroller! - Jorge Aparicio
- Cross-compiling Rust for the Raspberry Pi on macOS - Adrian Kappel
- rust-on-mobile - mtak-
- Compile Time Feature Flags in Rust - Justin Worthe
- 2017-11-22 - Writing fast and safe native Node.js modules with Rust - Peter Czibik
- 2017-09-21 - Building and Deploying a Rust library on Android - Emily Toop
- 2017-09-06 - Building and Deploying a Rust library on iOS - Emily Toop
- The Rust FFI Omnibus - Jake Goulding
- The Rust FFI Guide - using unsafe for fun and profit - Michael-F-Brya
- Helping Travis catch the rustc train part 1 | part 2 - Huon Wilson
- Rust, Travis, and Github Pages - Andrew Hobden
- Shave Some Time From Your Travis Builds - Llogiq
- How to collect test coverages for a rust project - lifthrasiir
- Rust Code Coverage Guide: kcov + Travis CI + Codecov / Coveralls - Sunjay Varma
- Rust Performance Testing on Travis CI - Lloyd
- Ensuring Beautiful Commits with rustfmt and Travis-CI - Kyle Kneitinger
- Great Rust CI - Christopher Durham
- Debugging a segfault in my Rust program - Julia Evans
- Compiler Explorer - See Rust code as assembly
- Profiling Rust applications on Linux - Llogiq
- Rust::from(lang) - Michael Gattozzi
- Others:
Languages | Links |
---|---|
C# |
|
C/C++ | |
Clojure |
|
Go |
|
Java/Scala | |
JavaScript | |
Nim |
|
OCaml / Haskell | |
Python |
|
Ruby | |
Swift |
|
Erlang |
See repos kud1ing/awesome-rust & awesomo /rust
- 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
- Practical differences between Rust closures and functions - Ricardo Martins
- ⭐ How Rust Achieves Thread Safety - Manish Goregaokar
- A Journey into Iterators - Andrew Hobden
- Effectively Using Iterators In Rust - Herman J. Radtke III
- for loops in Rust - Karol Kuczmarski
- Iteration patterns for Result & Option - Karol Kuczmarski
- Little tour of multiple iterators implementation in Rust - Guillaume Gomez
- rust-iterators - Max Skybin
- ⭐ Where Rust Really Shines - Manish Goregaokar
- Understanding Lifetime in Rust part 1 | part 2 - Bibhas Bhattacharya
- Rust Lifetimes - Charles
- 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
- How do I use the Standard Library Macros in Rust? - Michael Gattozzi
- Writing complex macros in Rust: Reverse Polish Notation - Ingvar Stepanyan
- Rust Module Essentials - Sam Pagenkopf
- Option Type part 1 | part 2 - 8thlight
- 🔚 Option Monads in Rust - Andrew Hobden
- Russian Dolls and clean Rust code - Michael Gattozzi
- ⭐ 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
- & vs. ref in Rust patterns - Karol Kuczmarski
- Interior mutability in Rust: what, why, how? | part 2 | part 3 - Ricardo Martins
- ⭐ Rust Means Never Having to Close a Socket - Yehuda Katz
- Understanding Lifetimes in Rust, part 1 | part 2 - Bibhas Bhattacharya
- Some Notes on
Send
andSync
- Huon Wilson - Sharing Coloring Books With Friends in Rust - Jeena Lee
- Moving, Cloning, and Copying Coloring Books in Rust - Jeena Lee
- Ref patterns, destructuring, and invisible borrows - Robert Grosse
- String vs &str in Rust functions part 1 | part 2 | part 3 - Herman J. Radtke III
- From &str to Cow - Joe Wilm
- How do I convert a &str to a String in Rust? - Michael Gattozzi
- Rust: str vs String - Ameya Lokare
- On dealing with owning and borrowing in public interfaces - Dimitri Sabadie
- ⭐ 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
- Gentle Intro to Type-level Recursion in Rust - Lloyd Chan
- Unsafe Rust: An Intro and Open Questions - Alexis Beingessner
- Memory Leaks are Memory Safe - Huon Wilson
- ⭐ On Reference Counting and Leaks - Niko Matsakis
- ⭐ A Few More Remarks on Reference Counting and Leaks - Niko Matsakis
- Pre-pooping Your Pants With Rust - Alexis Beingessner
- ⭐ Unsafe Abstractions - Niko Matsakis
- ⭐ The "Tootsie Pop" Model for Unsafe Code - Niko Matsakis
This is the official Rust Team and Servo Team
You search for a rustacean? http://www.rustaceans.org/
You want to ask a something? Users Forum
You want to meet them IRL? Meetup groups, Community calendar, Community talks list, RustBridge
Go to rusty events? RustFest, RustConf, Rust Belt Rust
You are looking for a job? Rust Jobs
Are you fast, friendly, and fearless? Find something Rusty to work on!
You want to stay up to date? The official blog, This Week in Rust, This Week in Rust Docs, The official reddit, Rust Herald
You want to find out why some historical decisions? Chronicle.rs
A complete list could be found here
- Aaron Turon - blog
- 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.
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.
- Workshop slides and exercises from RustConf 2017.
- Niko Matsakis's rust tutorializer framework
- Niko Matsakis's ownership, borrowing, traits, structs, and threading tutorials, keynote files
- 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
- Carol Nichols' Intro to Rust that presents the guessing game and ownership in a similar manner as the book
- Jonathan Pallant's Rust on the Raspberry Pi tutorial (using a the Sense HAT)
A few universities have had classes about Rust. Here are links to their public resources.
- University of Pennsylvania CIS 198: Rust Programming, Spring 2016, Rust 1.6. Slides linked from Schedule page.
- Northwestern University EECS 3/495: Concurrent Programming in Rust, Winter 2016, Rust 1.6. Slides linked from Schedule page.