Skip to content

Semi-organised collection of useful links from my experience learning Rust.

Notifications You must be signed in to change notification settings

rsouth/rust-reading-list

Repository files navigation

๐Ÿฆ€ 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 ๐Ÿ‘

๐ŸŒŸ 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

actix/actix#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.

About

Semi-organised collection of useful links from my experience learning Rust.

Topics

Resources

Stars

Watchers

Forks