Announcing aarc 0.1.0 - atomic variants of Arc and Weak for easy lock-freedom

73 points diplomat76

We’re excited to release aarc, a library that provides efficient shared pointer and atomic shared pointer implementations, with a focus on enabling lock-free data structures. Links: GitHub, docs.rs

There are a few existing crates that provide similar functionalities - crossbeam, arc_swap, haphazard, and others - but to our knowledge, none of them have quite the same blend of performance and convenience. In particular, we implement a hybrid technique which combines the convenience of reference counting with the efficiency of a state-of-the-art SMR backend. It guarantees wait-freedom for all of our atomic operations and is based on recent advances in the field. Refer to the linked papers in the README for more details on the theory behind this project.

Anyone interested is welcome to contribute! Feel free to come up with test cases in particular, which are sorely lacking at the moment, perhaps for your favorite data structures.