Rust is a new systems programming language that combines the performance and low-level control of C and C++ with memory safety and thread safety. Rust’s modern, flexible types ensure your program is free of null pointer dereferences, double frees, dangling pointers, and similar bugs, all at compile time, without runtime overhead. In multi-threaded code, Rust catches data races at compile time, making concurrency much easier to use.
Written by two experienced systems programmers, this book explains how Rust manages to bridge the gap between performance and safety, and how you can take advantage of it. Topics include:
About the Authors
- How Rust represents values in memory (with diagrams)
- Complete explanations of ownership, moves, borrows, and lifetimes
- Cargo, rustdoc, unit tests, and how to publish your code on crates.io, Rust’s public package repository
- High-level features like generic code, closures, collections, and iterators that make Rust productive and flexible
- Concurrency in Rust: threads, mutexes, channels, and atomics, all much safer to use than in C or C++
- Unsafe code, and how to preserve the integrity of ordinary code that uses it
- Extended examples illustrating how pieces of the language fit together
Jim Blandy has been programming since 1981, and writing Free software since 1990. He has been the maintainer of GNU Emacs and GNU Guile, and a maintainer of GDB, the GNU Debugger. He is one of the original designers of the Subversion version control system. Jim now works on Firefox’s web developer tools for Mozilla.