rust-reading-list

🦀 Collection of hopefully useful, semi-organised links as a reference from my time with Rust.

Also see my ASM Reading List

:octocat: Happy to accept PRs for any other useful links!

Contents

removed while re-shuffling the page

Table of contents generated with markdown-toc :thumbsup:

🌟 References

The Book and other useful reference material.

💥 The Book, ℹ️ Rust By Example, 📖 std lib, ⁉️ Compiler Error Index and loads more starting from rust-lang.org’s Learn Rust

🙏 The Rust Book / Nightly

Rust Cookbook - Collection of useful Rust code examples

Rust by Example (RBE) - Collection of runnable examples that illustrate various Rust concepts and standard libraries

Writing Rust in Easy English

🚀 Performance

The Rust Performance Book

LogRocket Blog: How to write CRaP Rust code (Correct, Readable and Performant)

Optimizing a Rust Codebase

From 46s to 5s - Optimizing a 350 Line Raytracer in Rust

Acheiving warp speed with Rust

“What The Hardware Does” is not What Your Program Does

🎥 Scott Meyers: Cpu Caches and Why You Care

Branch prediction - Why is processing a sorted array faster than processing an unsorted array?

Where should I start if I want to squeeze out as much performance as I can from my rust code?

Fastware Workshop

Top-Down performance analysis methodology

Rust Performance Pitfalls

go-perfbook - Largely applicable to any language

LLVM reference && Godbolt Compiler Explorer

Performance Tuning In Rust Using Benchmarking And Perf

The Embedded Rust Book - Optimizations: The speed size tradeoff

Cheap tricks for high-performance Rust

Rust Optimization.md

How to Write Fast Rust Code (⚠️ no https)

https://www.youtube.com/results?search_query=mike+acton

SIMD

SIMD for faster computing

🔄 Borrowing and Lifetimes etc

References and Borrowing

What is Ownership?

🎥 Learning Rust: Memory, Ownership and Borrowing

What is ownership? - Learn about how memory is managed through ownership From Microsoft’s “Take your First Steps with Rust”

Memory & Lifetimes Visual Representation

LogRocket Blog - Understanding lifetimes in Rust

🧵 Async

Carl Lerche - Reducing tail latencies with automatic cooperative task yielding

Alice Ryhl - Async: What is blocking?

SO Question - What is the difference between then, and_then and or_else in Rust futures?

Futures Explained in 200 Lines of Rust

🦀 Idiomatic Rust

Idiomatic Rust Tips - Coming from Java / C - the Rust Language Cheat Sheet has a lot of useful references

Thinking In Rust Part 1: Types

Error Handling in Rust

Rust lang Tips and Tricks

Unwrap and Expect

Writing Concise and Elegant Rust Code

Option and Result

Rust’s Built-in Traits, the When, How & Why

Basic Rust iterator usage

Design Patterns (:octocat: GitHub)

Builder Pattern

Rust Iterator Cheat Sheet

🗣️ Interesting Discussion

Hacker News - Assorted Thoughts on Zig and Rust / Article

Hacker News - I can’t keep up with idiomatic Rust / Article

📰 Articles

Learning Rust by solving all 189 problems from the “Cracking the Coding Interview” book

Object-Oriented Programming in Rust

So you want to write object oriented Rust

These Modern Programming Languages Will Make You Suffer

Rust - A Unique Perspective

Foreign function interface (FFI) - Rust Design Patterns

Building a Rust Web Browser

🎥 Is It Time to Rewrite the Operating System in Rust?

The Speed of Rust vs C

The Rust Programming Language in the words of its practitioners

Why You Should Learn Rust

My Key Learnings after 30,000 LOC in Rust

I want off Mr. Golang’s Wild Ride

My second impression of Rust

Mutable Arguments Considered Harmful

🛠️ Development Environments

Developing in Rust using Visual Studio Code https://dev.to/thiagomg/developing-in-rust-using-visual-studio-code-4kkl

Debugging Rust in VSCode - A 2020 guide for debugging Rust with Visual Studio Code. https://jason-williams.co.uk/debugging-rust-in-vscode

🎶 Useful notes

💬 Stack Overflow - What is the difference between iter and into_iter? / 🔗 Link

Rust modules vs files

💬 Stack Overflow - Rust package with both a library and a binary?

Are we observable yet? An introduction to Rust telemetry

https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html

https://doc.rust-lang.org/rust-by-example/flow_control/match/destructuring/destructure_structures.html

Everything you need to know about cross compiling Rust programs

Fearless Concurrency with Rust

💪 Exercises

Exercism 👻

Advent of Code 🎄

🗃️ Other resources

How to Learn Rust

https://caniuse.rs/

Rust container cheat sheet

Easy Rust book

Rust Programming Language Tutorials

https://learning-rust.github.io/

https://carols10cents.github.io/rust-conversion-reference/

Rust Omnibus (FFI) How to use Rust code in other languages

The Little Book of Rust Macros

Software Projects. Code Samples. Software Links

Rust - Rethinking Systems Programming

Modeling graphs in Rust using vector indices

🔊 Podcast https://newrustacean.com/ / https://newrustacean.com/show_notes/index.html

Rust Tidbits: What is a lang item?

https://hackr.io/tutorials/learn-rust

🧰 Crates

TODO Organise crates by functional areas - use this space to provide useful links relating to great crates, not just linking to the crate.

Actix

Website / :octocat: GitHub

https://alinex.gitlab.io/rust/crates/actix/

https://docs.rs/actix/0.11.1/actix/fut/future/trait.ActorFuture.html

https://github.com/actix/actix/issues/291

https://www.reddit.com/r/actix/comments/cgmsqm/struggling_with_async_message_results/

https://www.reddit.com/r/actix/comments/dl1gy4/communication_between_two_actors/

https://actix.rs/docs/testing/

https://www.zupzup.org/rust-webapp/index.html

https://mattgathu.github.io/2020/04/16/actix-web-error-handling.html

Are we observable yet? An introduction to Rust telemetry https://www.amarjanica.com/mocking-actix-actor-without-getting-a-gray-hair/index.html

https://actix.rs/docs/websockets/

https://docs.rs/actix-broker/0.4.0/actix_broker/

Actix - actor framework in Rust https://actix.rs/book/actix/sec-1-getting-started.html

Tokio

A runtime for writing reliable network applications without compromising speed. https://docs.rs/tokio/1.4.0/tokio/

https://tokio.rs/tokio/tutorial

GUI

https://github.com/linebender/druid

https://github.com/tauri-apps/tauri

https://www.boringcactus.com/2020/08/21/survey-of-rust-gui-libraries.html

https://www.areweguiyet.com/

Serde

https://serde.rs/attr-default.html

rayon

https://github.com/rayon-rs/rayon

raqote

https://crates.io/crates/raqote

Misc

https://crates.io/crates/async-trait

Anyhow - Flexible concrete Error type built on std::error::Error https://lib.rs/crates/anyhow

imageproc https://docs.rs/imageproc/0.22.0/imageproc/

smoltcp-rs/smoltcp - a smol tcp/ip stack https://github.com/smoltcp-rs/smoltcp

https://github.com/routerify/routerify

matthieu-m/ghost-collections - Safe collections written in stable Rust, based on GhostCell and StaticRc https://github.com/matthieu-m/ghost-collections

slotmap https://docs.rs/slotmap/1.0.3/slotmap/

Series

🎥 Doug Milford’s Rust series

🎥 Easy Rust playlist

Rust for OOP - Series Introduction

Introduction to the Rust language, standard library and ecosystem

Learning Rust With Entirely Too Many Linked Lists

Rust Programming Language Tutorial – How to Build a To-Do List App

All the resources you need to give yourself a world class computer science education

Learn Rust in Y Minutes

Microsoft’s Rust tutorials

https://www.ralfj.de/projects/rust-101/main.html

Want to learn Rust but don’t know where to start?

A half-hour to learn Rust

A Complete Resource for Rust Beginners

🎥 YouTube - Crust of Rust

Ferrous Systems’ Teaching Material

🎥 YouTube - Overview of the Rust Programming Language

🎥 YouTube - Rust Projects

✔️ Testing

https://knowitlabs.no/rust-2020-testing-4ab3d80112ba

https://archive.fosdem.org/2018/schedule/event/rust_testing_mocking/attachments/slides/2113/export/events/attachments/rust_testing_mocking/slides/2113/testing_in_rust_by_donald_whyte.pdf

I have some JSON with a ton of test cases, how do I use that in Rust?

📏 Benching

Criterion

https://github.com/bheisler/criterion.rs

https://bheisler.github.io/criterion.rs/book/index.html

http://www.serpentine.com/criterion/tutorial.html

Other Lists

https://github.com/ctjhoa/rust-learning

https://github.com/kud1ing/awesome-rust / https://project-awesome.org/rust-unofficial/awesome-rust

Awesomo Rust

📘 List of Rust books

Not Rust specific, but: A public list of APIs

Rust for … Programmers

☕ … Java

https://llogiq.github.io/2016/02/28/java-rust.html

https://gist.github.com/Kimundi/8391398

https://overexact.com/rust-for-professionals/

https://leshow.github.io/post/rust_for_java_devs/

… Scala

https://beachape.com/blog/2017/05/24/rust-from-scala/

🐍 … Python

https://lucumr.pocoo.org/2015/5/27/rust-for-pythonistas/

C++

https://renoth.medium.com/understanding-rust-as-a-c-developer-69ee8ca76fd6

💾 Downloads

Useful / interesting files, mirrored here lest they move or vanish.

PDF “Is Rust Used Safely by Software Developers”

PDF “Safe Systems Programming in Rust”

PDF “What Every Programmer Should Know About Memory”

PDF Packt “Learning Rust” Free eBook

PDF “Testing in Rust”

PDF “Idiomatic Rust - Writing concise and elegant Rust code”

PDF “Rust Container Cheat Sheet”

Are we … yet?

List of “Are we … yet” sites on Moz wiki

… 👾 https://arewegameyet.rs/

… 🕸️ https://arewewebyet.org/

… 🖱️ https://areweguiyet.com/

Blogs

http://troubles.md/

https://www.ralfj.de/blog/

Nicholas Nethercote - personal site https://nnethercote.github.io/ and Moz blog https://blog.mozilla.org/nnethercote/category/performance/

https://llogiq.github.io/

Alice Ryhl – Personal website

A collection of notable Rust blog posts

https://lucumr.pocoo.org/

https://without.boats/blog/

A computer scientist working in open source towards a more hopeful future

Steve Klabnik’s personal website

amos loves to tinker

The Rust Programming Language Blog

Dumping ground

Everything below here is uncategorised, dumped for later review

https://github.com/actions-rs

The Register: Microsoft unveils Rust for Windows v0.9, with ‘full consumption support’ for the Windows API. https://go.theregister.com/feed/www.theregister.com/2021/05/10/rust_for_windows/

Preparations - Workbook for Embedded Workshops https://embedded-trainings.ferrous-systems.com/

https://tokio.rs/

rust-embedded/cross “Zero setup” cross compilation and “cross testing” of Rust crates - rust-embedded/cross https://github.com/rust-embedded/cross

💲 Zero To Production In Rust - (Forward)

Hands-On Rust

r/rust - swash font crate: now with docs and a demo https://www.reddit.com/r/rust/comments/n42r54/swash_font_crate_now_with_docs_and_a_demo/

r/statemachines - A proposal for a state machine pattern for Rust https://www.reddit.com/r/statemachines/comments/n2sjy8/a_proposal_for_a_state_machine_pattern_for_rust/ https://frame-lang.org/

r/rust - Minimal graphics crate for Rust https://www.reddit.com/r/rust/comments/mzhk18/minimal_graphics_crate_for_rust/

⚠️ no https -> http://joeduffyblog.com/2016/02/07/the-error-model/

TODO: consider adding https://outline.com/ as an option for sites with no https.