Programming Rust: Fast, Safe Systems Development by Jim Blandy
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 (February 2021).