Intermediate Rust seriesFebruary 12, 2021 -
A few days ago I posted on Twitter asking for topics that people wanted to see covered for intermediate Rust content. The response was awesome and it's inspired me to make a series where I go through each topic and do my best to cover it as a video and/or blog post.
- Associated types
- Working with lifetimes
- Macros, proc macros, custom attributes
- MPSC theory
- FFI, shared mem across FFI, closures/function pointers over FFI
- FFI to C and C++
- C interop, opaque structures, repl(c), working with null, alloc/free, bitflag export to C
- What tools to use for C++
std::sync(Arc, Rc, RefCell, etc)
- Raw pointers
- Impl trait, dyn trait, and trait objects
- Fn traits
- Field sensitivity, field sensitivity + smart ptrs, field sensitivity and closures
- Why do we cast from
- How to use
std::mem, swap, replace, take
- Deeper dive into existing frameworks/libraries
- Channels/async/par_iter (concurrency vs parallelism)
- Basic SQL database
- Interpreters and parsers
- Tokio + io_uring for CLI apps
- Filesystem + FUSE
- Seda or actor based project
- Wasm + wasm bindgen
Patterns and practices
- Like http://railstutorial.org but for Rust
- Functional composition
- Async functional composition
- Dependency injection (and alternatives)
- Design patterns
- Lessons from Rust in production
- How to teach Rust to teams
- Testing patterns and strategies
- Zero copy processing best practices
- Error handling. One big error enum or something extensible? Anyhow?
- Debugging Rust
- Modelling classic data structures in Rust
- Shared data structures in long-running apps
- Improving compile times
- How do nightly features stabilize?
As you can see, there's a lot of area to cover. My plan is to make steady progress on the list above, covering topic by topic until we cover as many of the topics as possible. People were also upvoting tweets with likes, so I may juggle this list around so that I'm sure to cover the hot topics sooner.
Excited to dig into this!
If you'd like to follow along to enjoy the content as it comes out, you can follow me on Twitter, you can follow my YouTube channel where I post my technical content, and follow me on Twitch for when I stream a topic.