The Edge of Safe Rust
summary
Claim: Rust can safely host tracing GC for cyclic pointer graphs by combining branding lifetimes with generative arena contexts and index-backed storage. Implementation uses a slot vector with generation checks, projection types to instantiate per-enter lifetimes, and an unsafe Trace trait (usually derived by proc macro) to guarantee reachability. The crate runs in production (Ruffle and a farming sim use it), collects by roots only, and mostly avoids UB while remaining Send/Sync-friendly.
AI-written summary · about
chapters (7)
- 0:00Introduction
- 3:24Cyclic pointers in Rust
- 11:10References and bump allocators
- 17:48Lifetimes versus garbage collection
- 28:30Implementing tracing and collection
- 36:55Value of this garbage collector
- 40:43Explore the design space
related talks
15mNon-binary Rust: Between Safe and Unsafe
19mCounterexamples in Safe Rust
40mWhy Rust?
01h 14mRust: A Friendly Introduction
45mRust: safe and concurrent. But how does it do it?
31mThe Rust That Could Have Been
23mRust in Edge Computing: Enhance Performance & Security
58mRust for The Curious C++ Developers
