Arc - The Rustonomicon
Description: The Dark Arts of Advanced and Unsafe Rust Programming

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Implementing Arc

In this section, we’ll be implementing a simpler version of `std::sync::Arc`. Similarly to the implementation of `Vec` we made earlier, we won’t be taking advantage of as many optimizations, intrinsics, or unstable code as the standard library may.

This implementation is loosely based on the standard library’s implementation (technically taken from `alloc::sync` in 1.49, as that’s where it’s actually implemented), but it will not support weak references at the moment as they make the implementation slightly more complex.

Please note that this section is very work-in-progress at the moment.