While systems programming languages have greatly evolved since the introduction of C more than 40 years ago, our capacity for dumb mistakes with enormous consequences has remained unchanged, with vivid examples regularly in the news. This O'Reilly report examines Rust, a new systems programming language that combines safety and security with performance on a par with C and C++.

Author Jim Blandy from Mozilla explains how Rust achieves this combination via a sophisticated and flexible type system, working together with a novel "borrow checker." Rust promises:

No null pointer dereferences. Programs won’t crash because you forgot to check whether a pointer was null.

Programs won’t crash because you forgot to check whether a pointer was null. No dangling pointers, no leaks. Every value will live as long as it must, and no longer.

Every value will live as long as it must, and no longer. No buffer overruns. Your program will never access elements beyond the end or before the start of an array.

The first two come at no run-time cost: they’re checked entirely at compile time. These memory safety guarantees also eliminate data races from multi-threaded programming, making concurrency much easier to use.

With this report, you'll learn how to put Rust’s safety, performance, and trustworthy concurrency to use, and you'll understand how the type system and borrow checker affect the way you write your code.