Intros
https://fasterthanli.me/articles/a-half-hour-to-learn-rust
Courses
https://google.github.io/comprehensive-rust
101 - references, owned value and Arc atomic reference counts
https://fiberplane.com/blog/getting-past-ampersand-driven-development-in-rust
Lessons learned
https://matklad.github.io/2021/09/05/Rust100k.html
https://dystroy.org/blog/how-not-to-learn-rust/
Challenges with borrow checker and lifetimes
https://erikmcclure.com/blog/stop-making-me-memorize-borrow-checker/
Concurrency
Testing
Fuzzing
https://da-data.blogspot.com/2020/05/speeding-up-fuzzing-rust-with-shared.html
Performance
Profiling
https://gendignoux.com/blog/2024/11/18/rust-rayon-optimized.html#time-based-profiling-with-perf
https://gendignoux.com/blog/2024/11/18/rust-rayon-optimized.html#advanced-perf-usage
Optimizations
http://pkolaczk.github.io/server-slower-than-a-laptop/
- cargo flamegraph
- multicore and cost of Arc
- read-only data in cache vs frequently updated
https://willcrichton.net/notes/k-corrset/
- Use Rust’s compiler optimizations.
- Hash numbers instead of strings.
- Use (indexed) vectors instead of hashmaps.
- Use bit-sets for efficient membership tests.
- Use SIMD for efficient bit-sets.
- Use multi-threading to split the work over many cores.
- Use batching to avoid a bottleneck at work distribution.
https://wiredream.com/llm-optimizing-digit-diff/
- Parallelize with Rayon
- Assisted by LLM
Statistical benchmarking
https://github.com/bheisler/criterion.rs