Focusing on embedded uses of Rust see:
- This is a three day Rust course developed by the Android team - covers some Bare metal embedded work as well as concurrency.
- The Rust Programming Language - standard online text
- Async in Rust
- Rust and Microcontrollers - embedded systems with Rust.
- The Rustonomicon - The Dark Arts of Advanced and Unsafe Rust Programming
- Rust Koans
- Rustlings - Small exercises to get you used to reading and writing Rust code
- Bare-metal Raspberry Pi 3 tutorials in Rust
- FP Complete Rust crash course
- associated wiki
- C++ & Rust: (Interior) Mutability, Moving and Ownership
Rust a language that has "speed, correctness, and expressiveness" in the same language.
Links:
- CLIs: https://rust-lang-nursery.github.io/cli-wg/
- WASM: https://rustwasm.github.io/book/
- Network services: https://aturon.github.io/apr/
- Embedded: https://rust-embedded.github.io/book/
The basic idea of the borrow checker is that values may not be mutated or moved while they are borrowed, but how do we know whether a value is borrowed? The idea is quite simple: whenever you create a borrow, the compiler assigns the resulting reference a lifetime. This lifetime corresponds to the span of the code where the reference may be used. The compiler will infer this lifetime to be the smallest lifetime that it can have that still encompasses all the uses of the reference.
From: Non lexical lifetimes RFC
Alternatives: