Why Rust?

Trustworthy, Concurrent Systems Programming

Why Rust?

Get the Free Ebook

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.
  • No dangling pointers, no leaks. 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.

Fill out the form below

All fields are required.

We protect your privacy.
Jim Blandy

Jim Blandy

Jim Blandy works for Mozilla on Firefox's tools for web developers. He is a committer to the SpiderMonkey JavaScript engine, and has been a maintainer of GNU Emacs, GNU Guile, and GDB. He is one of the original designers of the Subversion version control system.