rust-reading-list
rust-reading-list copied to clipboard
Semi-organised collection of useful links from my experience learning Rust.
π¦ 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
π Performance
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?
Top-Down performance analysis methodology
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
How to Write Fast Rust Code (β οΈ no https)
https://www.youtube.com/results?search_query=mike+acton
SIMD
π Borrowing and Lifetimes etc
π₯ 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
Writing Concise and Elegant Rust Code
Rust's Built-in Traits, the When, How & Why
Design Patterns (:octocat: GitHub)
π£οΈ 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
Foreign function interface (FFI) - Rust Design Patterns
π₯ Is It Time to Rewrite the Operating System in Rust?
The Rust Programming Language in the words of its practitioners
My Key Learnings after 30,000 LOC in Rust
I want off Mr. Golang's Wild Ride
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
π¬ 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
ποΈ Other resources
https://caniuse.rs/
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
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
https://www.ralfj.de/projects/rust-101/main.html
Want to learn Rust but don't know where to start?
A Complete Resource for Rust Beginners
Ferrous Systems' Teaching Material
π₯ YouTube - Overview of the Rust Programming Language
βοΈ 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
π 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 "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
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)
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/
- https://docs.rs/swash/0.1.2/swash/
- https://github.com/dfrg/swash_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/
- Miniquad is a very minimal but very cross platform rendering library https://github.com/not-fl3/miniquad
- Good Web Game is a minimal game engine build on Miniquad https://github.com/not-fl3/good-web-game
- If you want less minimal, more features, ggez might be the right thing for you https://github.com/ggez/ggez
- https://github.com/parasyte/pixels
- https://github.com/emoon/rust_minifb
β οΈ 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.