The Benefits and Limitations of Rust for Implementing Concurrent Data Structures - Comparing Concurrent Skip Lists in Rust to C

dc.contributor.authorHultgren, Elliot
dc.contributor.authorVallin Ek, Max
dc.contributor.departmentChalmers tekniska högskola / Institutionen för data och informationstekniksv
dc.contributor.departmentChalmers University of Technology / Department of Computer Science and Engineeringen
dc.contributor.examinerTsigas, Philippas
dc.contributor.supervisorvon Geijer, Kåre
dc.date.accessioned2026-08-13T12:47:04Z
dc.date.issued2026
dc.date.submitted
dc.description.abstractThe Rust programming language has become increasingly relevant to the software industry for its memory safety and performance, especially since memory safety issues have been seen as a prevalent source of security vulnerabilities in recent years. Rust has also been praised for its "Fearless Concurrency", with concurrency being essential for achieving better performance in modern computers. The "Fearless Concurrency" of Rust has been shown to primarily help with regular parallelism as opposed to the parallelism needed by complex concurrent data structures with intricate access patterns. This leaves many open questions of how Rust handles these access patterns. This thesis will investigate the validity of the claims of "Fearless Concurrency" in Rust for implementing complex concurrent data structures, and see how this compares to languages like C. In particular, skip lists will be investigated since they are important for many concurrent systems and make use of many intricate concurrent programming techniques. We implemented several state-of-the-art skip lists in Rust, and created a comprehensive benchmarking framework used for comparing our implementations against existing Rust and C implementations. We also qualitatively analysed the experience of implementing performant concurrent data structures in Rust. Our findings show that skip lists in Rust performed comparably well to those in C and sometimes even outperforming them depending on workload. We also found that many of the existing implementations in Rust had problems or did not work. Lastly, while Rust provides many safety guarantees, Unsafe Rust may be needed for many complex concurrent data structures limiting these guarantees such as in our lock-free skip list implementations. In these cases, the safety guarantees of Rust are not applicable to the entire application, but rather for the parts of the application where safe Rust is used.
dc.identifier.coursecodeDATX05
dc.identifier.urihttps://hdl.handle.net/20.500.12380/312151
dc.language.isoeng
dc.setspec.uppsokTechnology
dc.subjectRust, Unsafe Rust, Benchmarking, Concurrency, Data Structures, Skip Lists, Lock-free.
dc.titleThe Benefits and Limitations of Rust for Implementing Concurrent Data Structures - Comparing Concurrent Skip Lists in Rust to C
dc.type.degreeExamensarbete för masterexamensv
dc.type.degreeMaster's Thesisen
dc.type.uppsokH
local.programmeComputer systems and networks (MPCSN), MSc

Ladda ner

Original bundle

Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
CSE 26-154 EK MS.pdf
Size:
2.74 MB
Format:
Adobe Portable Document Format

License bundle

Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
license.txt
Size:
2.35 KB
Format:
Item-specific license agreed upon to submission
Description: