Programming Rust: Fast, Safe Systems Development, 2nd Edition
- Length: 715 pages
- Edition: 2
- Language: English
- Publisher: O'Reilly Media
- Publication Date: 2021-07-06
- ISBN-10: 1492052590
- ISBN-13: 9781492052593
- Sales Rank: #32210 (See Top 100 Books)
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).
Table of contents
1. Systems Programmers Can Have Nice Things
2. A Tour of Rust
3. Fundamental Types
4. Ownership and Moves
5. References
6. Expressions
7. Error Handling
8. Crates and Modules
9. Structs
10. Enums and Patterns
11. Traits and Generics
12. Operator Overloading
13. Utility Traits
14. Closures
15. Iterators
16. Collections
17. Strings and Text
18. Input and Output
19. Concurrency
20. Asynchronous Programming
21. Macros
22. Unsafe Code
23. Foreign Functions