TS McNamara (45) [Avatar] Offline
Welcome to the July 2018 progress report for Rust in Action, a book on the Rust programming language for intermediate programmers that teaches Rust via systems programming examples. It's actually unique from the point of view of systems programming books too - as almost every example works on Windows!

Just over 200 pages are available via Manning's Early Access Program (MEAP). If you don't own the book and would like to preview its contents for free, visit the book's liveBook page. To get there, visit the book's webpage and click "Look inside". If you would like to buy it, Manning has just added a feature called tokens that allows you to purchase one chapter at a time. Oh and if you would like a big discount, use the coupon code slmcnamara at the checkout.

Dear readers: a new chapter will be with you very very shortly! I received a copy of the updated MEAP from the publisher a few days ago, and now it's in their task queue to send out.

Here are some other notes on the book's progress over the month:

Table of Contents Re-factoring

The big discussion with the publisher was a resolution with what to do with the table of contents:

Chapter 7 - Files & File Systems has been split into three: Chapter 7 - Files & File Systems, Chapter 8 - Hashing, Chapter 9 - Trees. Chapter 7 has been growing to nearly 100 pages. Splitting these apart gives each topic space to breath. Don't worry if those new topic headings seem too academic, the chapters will still be very practical!

Part 4 has shrunk. After some feedback from the community, I've realized that single chapters is insufficient space for my "C Extensions in Rust" and "Beyond the Server" (compiling to WASM/micro-controllers) ideas. Instead, I plan to write stand-alone online tutorials on those topics once the book has been released. I hope you understand the reasoning behind this change.

Book Progress

Chapter 11 9 - Time and Timers is about to be released via the MEAP program. It takes readers through the process of creating a fully-fledged NTP client that can update the system's time. Oh and describing how Google does with leap seconds and how that differs from almost everyone else in the world.

Chapter 12 10 - Exceptions, Signals, Interrupts is nearly completed. After some comments from the editor and some reflection, I've decided to add some new content. he chapter will work up to explaining how exceptions can be implemented in a programming language, via teaching readers how to access LLVM's "intrinsics".

The chapter's main focus is to discuss a few gritty details about how hardware, such as the network controller, tells the CPU that there is data ready. That content is done.

Chapter 8 - Networking is in the final planning stages, but I'll wait until the 4 in-progress chapters are finished before writing any content.

Should you buy the book?

If you're interested in learning Rust--especially if you have been told something like "you need to know C/C++ before you can really understand Rust"--then probably! In many ways, Rust in Action is intended as the next book that you read after the introductory materials.

The book tries to teach you everything that seems to be assumed by the more advanced blog posts that the community tends to generate. Its only half way there, but it is in a good shape to do that already. It already has a few interesting projects:

- a CPU emulator
- a fully functional NTP client
- a skeleton grep implementation
- a fixed-point decimal implementation
- a memory scanner so you can learn how game cheaters cheat

Connect with the author

You are very welcome to reach me at any stage! The easiest method for me is Twitter, but I am also active on LinkedIn, the Rust subreddit and the Rust discourse forum. Oh and other places too like Stack Overflow and Quora. I tend to stay of channels such as IRC as I'm based in a strange time zone (UTC+12).