Ownership, Trust, and Data Structures

The Rust programming language is safer than Java while being faster than C++. It achieves this by modeling and reasoning about the ownership and trust of values at both compile time and run time. This enables several exciting feats: memory safety without garbage collection, statically prevented iterator invalidation, and "fearless" concurrency.

Unfortunately, no other language reasons about ownership in such a first-class manner. As such, the literature and existing programming patterns do not necessarily play nicely with Rust. However we see how most idioms and patterns can be safely exposed with no performance loss from an "ideal" but otherwise unsafe design. In particular, we focus on patterns surrounding data structures, which are very performance sensitive, and place a high stress on Rust's type system.