You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ee41ccd
Browse filesBrowse the repository at this point in the historyBrowse files
Learn to program with Rust in an easy, step-by-step manner on Unix, Linux shell, macOS and the Windows command line. As you read this book, you’ll build on the knowledge you gained in previous chapters and see what Rust has to offer.
280
+
281
+
Beginning Rust starts with the basics of Rust, including how to name objects, control execution flow, and handle primitive types. You’ll see how to do arithmetic, allocate memory, use iterators, and handle input/output. Once you have mastered these core skills, you’ll work on handling errors and using the object-oriented features of Rust to build robust Rust applications in no time.
282
+
275
283
**Advanced Books**
276
284
---
277
285
@@ -460,22 +468,22 @@ What are the motivations of the attackers? How can they break seemingly so easil
460
468
461
469
Which programming language allows to craft shellcodes, build servers, create phishing pages? Before Rust, none! Rust is the long-awaited one-size-fits-all programming language meeting all those requirements thanks to its unparalleled guarantees and feature set.
462
470
463
-
### [Rust for Rustaceans](https://nostarch.com/rust-rustaceans)
471
+
### [Rust for Rustaceans](https://rust-for-rustaceans.com/)
For developers who’ve mastered the basics, this book is the next step on your way to professional-level programming in Rust. It covers everything you need to build and maintain larger codebases, write powerful and flexible applications and libraries, and confidently expand the scope and complexity of your projects.
468
476
469
477
Author Jon Gjengset takes you deep into the Rust programming language, dissecting core topics like ownership, traits, concurrency, and unsafe code. You’ll explore key concepts like type layout and trait coherence, delve into the inner workings of concurrent programming and asynchrony with async/await, and take a tour of the world of no_std programming. Gjengset also provides expert guidance on API design, testing strategies, and error handling, and will help develop your understanding of foreign function interfaces, object safety, procedural macros, and much more.
470
478
471
479
You'll Learn:
472
480
473
-
1)How to design reliable, idiomatic, and ergonomic Rust programs based on best principles
474
-
2)Effective use of declarative and procedural macros, and the difference between them
475
-
3)How asynchrony works in Rust
476
-
4)What it means for code to be unsafe, and best practices for writing and interacting with unsafe functions and traits
477
-
5)How to organize and configure more complex Rust projects so that they integrate nicely with the rest of the ecosystem
478
-
6)How to write Rust code that can interoperate with non-Rust libraries and systems, or run in constrained and embedded environments
481
+
-How to design reliable, idiomatic, and ergonomic Rust programs based on best principles
482
+
-Effective use of declarative and procedural macros, and the difference between them
483
+
-How asynchrony works in Rust
484
+
-What it means for code to be unsafe, and best practices for writing and interacting with unsafe functions and traits
485
+
-How to organize and configure more complex Rust projects so that they integrate nicely with the rest of the ecosystem
486
+
-How to write Rust code that can interoperate with non-Rust libraries and systems, or run in constrained and embedded environments
479
487
480
488
Brimming with practical, pragmatic insights that you can immediately apply, Rust for Rustaceans helps you do more with Rust, while also teaching you its underlying mechanisms.
481
489
@@ -544,7 +552,6 @@ This book contains techniques that can improve the performance-related character
544
552
545
553
This book is aimed at intermediate and advanced Rust users. Beginner Rust users have more than enough to learn and these techniques are likely to be an unhelpful distraction to them.
546
554
547
-
548
555
### [Rust Compiler Development Guide](https://rustc-dev-guide.rust-lang.org/getting-started.html)*Free*
549
556
550
557
The Rustc Book (full title Rustc Dev Guide) provides a guide for developers who want to make changes to the Rust compiler, rustc. This resource is for those who want to understand how the Rust compiler works and learn how to make changes to it.
@@ -615,6 +622,33 @@ And it will print out each rustc invocation. This book can help you understand w
Cargo is the [Rust](https://www.rust-lang.org/)[package manager](https://doc.rust-lang.org/stable/cargo/appendix/glossary.html#package-manager). Cargo downloads your Rust [package](https://doc.rust-lang.org/stable/cargo/appendix/glossary.html#package)’s dependencies, compiles your packages, makes distributable packages, and uploads them to [crates.io](https://crates.io/), the Rust community’s [package registry](https://doc.rust-lang.org/stable/cargo/appendix/glossary.html#package-registry).
625
+
### [Rust Atomics and Locks](https://marabos.nl/atomics/)
The Rust programming language is extremely well suited for concurrency, and its ecosystem has many libraries that include lots of concurrent data structures, locks, and more. But implementing those structures correctly can be difficult. Even in the most well-used libraries, memory ordering bugs are not uncommon.
630
+
631
+
In this practical book, Mara Bos, team lead of the Rust library team, helps Rust programmers of all levels gain a clear understanding of low-level concurrency. You’ll learn everything about atomics and memory ordering and how they're combined with basic operating system APIs to build common primitives like mutexes and condition variables. Once you’re done, you’ll have a firm grasp of how Rust’s memory model, the processor, and the role of the operating system all fit together.
632
+
633
+
### [Rust Brain Teasers: Exercise Your Mind](https://pragprog.com/titles/hwrustbrain/rust-brain-teasers/v)
The Rust programming language is consistent and does its best to avoid surprising the programmer. Like all languages, though, Rust still has its quirks. But these quirks present a teaching opportunity. In this book, you’ll work through a series of brain teasers that will challenge your understanding of Rust. By understanding the gaps in your knowledge, you can become better at what you do and avoid mistakes. Many of the teasers in this book come from the author’s own experience creating software. Others derive from commonly asked questions in the Rust community. Regardless of their origin, these brain teasers are fun, and let’s face it: who doesn’t love a good puzzle, right?
638
+
639
+
What better way to exercise your brain and increase your Rust programming knowledge than with a collection of dynamic brain teasers? As you read through each of these puzzles and try to work out the answers, you’ll not only learn about Rust’s unique quirks and peculiarities, you’ll also have loads of fun along the way.
640
+
641
+
### [Practical Systems Programming with Rust](https://www.oreilly.com/library/view/practical-system-programming/9781800560963/)
Dive into the world of systems programming with Rust and create robust and secure utilities for Linux/Unix systems. This book takes you from the basics of Rust to advanced systems programming concepts, with practical examples and projects to solidify your understanding. By the end, you'll be confident in designing and developing efficient system tools and utilities with Rust.
Accelerate your Rust development with reusable libraries, and build a game development toolkit that helps you quickly create games using the Bevy Engine. Improve your code with testing, benchmarking, and optimization. Unlock Rust’s trait and generic metaprogramming systems to develop code that adapts to fit your needs. Customize libraries with feature flags, and customize language syntax with macros. Master concurrency with threads and asynchronous programming. Structure your programs with reusable state management, menus, user interface elements, and asset management. Quickly build games with reusable physics and collision detection. Make your games pop with animations, particles, and rendering tricks, including parallax layering.
0 commit comments