Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Independent

Comprehensive Rust

via Independent

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
This is a free Rust course developed by the Android team at Google. The course covers the full spectrum of Rust, from basic syntax to advanced topics like generics and error handling.

The latest version of the course can be found at https://google.github.io/comprehensive-rust/. If you are reading somewhere else, please check there for updates.

The course is available in other languages. Select your preferred language in the top right corner of the page or check the Translations page for a list of all available translations.

The course is also available as a PDF.
The goal of the course is to teach you Rust. We assume you don’t know anything about Rust and hope to:

  • Give you a comprehensive understanding of the Rust syntax and language.
  • Enable you to modify existing programs and write new programs in Rust.
  • Show you common Rust idioms.
We call the first four course days Rust Fundamentals.

Building on this, you’re invited to dive into one or more specialized topics:

  • Android: a half-day course on using Rust for Android platform development (AOSP). This includes interoperability with C, C++, and Java.
  • Chromium: a half-day course on using Rust in Chromium-based browsers. This includes interoperability with C++ and how to include third-party crates in Chromium.
  • Bare-metal: a whole-day class on using Rust for bare-metal (embedded) development. Both microcontrollers and application processors are covered.
  • Concurrency: a whole-day class on concurrency in Rust. We cover both classical concurrency (preemptively scheduling using threads and mutexes) and async/await concurrency (cooperative multitasking using futures).


Syllabus

  • Welcome to Comprehensive Rust 🦀
    • 1. Running the Course
    • 2. Using Cargo
  • Day 1: Morning
    • 3. Welcome
    • 4. Hello, World
    • 5. Types and Values
    • 6. Control Flow Basics
  • Day 1: Afternoon
    • 7. Welcome
    • 8. Tuples and Arrays
    • 9. References
    • 10. User-Defined Types
  • Day 2: Morning
    • 11. Welcome
    • 12. Pattern Matching
    • 13. Methods and Traits
    • 14. Generics
  • Day 2: Afternoon
    • 15. Welcome
    • 16. Closures
    • 17. Standard Library Types
    • 18. Standard Library Traits
  • Day 3: Morning
    • 19. Welcome
    • 20. Memory Management
    • 21. Smart Pointers
  • Day 3: Afternoon
    • 22. Welcome
    • 23. Borrowing
    • 24. Lifetimes
  • Day 4: Morning
    • 25. Welcome
    • 26. Iterators
    • 27. Modules
    • 28. Testing
  • Day 4: Afternoon
    • 29. Welcome
    • 30. Error Handling
    • 31. Unsafe Rust
  • Android
    • 32. Welcome
    • 33. Setup
    • 34. Build Rules
    • 35. AIDL
    • 36. Testing
    • 37. Logging
    • 38. Interoperability
  • Chromium
    • 39. Welcome
    • 40. Setup
    • 41. Comparing Chromium and Cargo Ecosystems
    • 42. Policy
    • 43. Build Rules
    • 44. Testing
    • 45. Interoperability with C++
    • 46. Adding Third Party Crates
    • 47. Bringing It Together - Exercise
    • 48. Exercise Solutions
  • Bare Metal: Morning
    • 49. Welcome
    • 50. no_std
    • 51. Microcontrollers
    • 52. Exercises
  • Bare Metal: Afternoon
    • 53. Application Processors
    • 54. Useful Crates
    • 55. Bare-Metal on Android
    • 56. Exercises
  • Concurrency: Morning
    • 57. Welcome
    • 58. Threads
    • 59. Channels
    • 60. Send and Sync
    • 61. Shared State
    • 62. Exercises
  • Concurrency: Afternoon
    • 63. Welcome
    • 64. Async Basics
    • 65. Channels and Control Flow
    • 66. Pitfalls
    • 67. Exercises
  • Idiomatic Rust
    • 68. Welcome
    • 69. Leveraging the Type System
  • Unsafe
    • 70. Welcome
    • 71. Setup
    • 72. Motivations
    • 73. Foundations
  • Final Words
    • 74. Thanks!
    • 75. Glossary
    • 76. Other Resources

Reviews

Start your review of Comprehensive Rust

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.