We'll build a complete doubly-linked list from scratch in Rust, starting with a simple singly-linked stack and progressively evolving it into a full-featured doubly-linked list with raw pointers and unsafe code. Along the way we'll implement three iterator types (shared, mutable, and owning), convert from safe Box-based pointers to raw NonNull pointers, add panic-safe drop logic, and support bidirectional traversal — exploring Rust's ownership model, lifetime system, and unsafe abstractions in depth.
Raw Linked List in Rust
Create a linked list from scratch with unsafe memory, raw pointers, and custom drop guards.
What you'll build
Learning objectives
Prerequisites
Course curriculum
Technologies
FAQ
Is this a video course?
No. You work through the project step by step in your browser, and the reference code for each step saves to your disk — yours to run and keep locally.
Do I need to install anything?
No. The playground runs entirely in your browser — no toolchain or local setup required.
Can I try it before subscribing?
Yes. Preview steps are available without a subscription so you can see the format and quality first.
What do I get with full access?
Every step unlocked, the Workbench app, a snapshot for each step, jump-to-any-step navigation, and all new playground releases.
Does it work with an AI agent like Claude or Codex?
Yes. You can work through a playground solo or alongside an AI agent.
Is there reference code?
Yes. Every step has a complete reference solution you can compare against.