By Jim Blandy, Jason Orendorff and Leonora Tindall
Systems programming provides the foundation for the world’s computation. Developing performance-sensitive code requires a programming language that puts programmers in control of how memory, processor time, and other system resources are used. The Rust systems programming language combines that control with a modern type system that catches broad classes of common mistakes, from memory management errors to interthread data races. With this practical guide, experienced systems programmers will learn how to successfully bridge the gap between performance and safety using Rust. Jim Blandy, Jason Orendorff, and Leonora Tindall demonstrate how Rust’s features put programmers in control over memory consumption and processor use by combining predictable performance with memory safety and trustworthy concurrency. You’ll learn: Rust’s fundamental data types and the core concepts of ownership and borrowing Language basics including error handling, crates and modules, structs, and enums How to write flexible, efficient code with traits and generics Rust’s key power tools: closures, iterators, and asynchronous programming Collections, strings and text, input and output, concurrency, macros, unsafe code, and interfacing with foreign functions This updated edition covers Rust 1.50
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 for Mozilla on Firefox’s web developer tools. Jason Orendorff hacks C++ for Mozilla, where he is module owner of the JavaScript engine that’s in Firefox. He is an active member of the Nashville developer community and an occasional organizer of homegrown tech events. He is interested in grammar, baking, time travel, and helping people learn about complicated topics. Leonora Tindall is a type system enthusiast and software engineer who uses Rust, Elixir, and other advanced languages to build robust and resilient systems software in high-impact areas like healthcare and data ownership. She works on a variety of open source projects, from genetic algorithms that evolve programs in strange languages to the Rust core libraries and crate ecosystem, and enjoys the experience of contributing to supportive and diverse community projects.