# Rust
[[Programming Languages]]
Used for [[Embedded]] and [[Systems Programming]].
## Topics
- [[Rust MIR]]
## Ownership
Ownership is one of the big things in Rust.
Uses [[Affine Types]] or [[Linear Types]] (not sure entirely) to do its magical borrow checking.
- [Linear or Affine Types? : ProgrammingLanguages](https://www.reddit.com/r/ProgrammingLanguages/comments/6sq6nv/linear_or_affine_types/)
- [The Pain Of Linear Types In Rust - Faultlore](https://faultlore.com/blah/linear-rust/)
Here's a tool to visualize ownership:
- [GitHub - rustviz/rustviz: Interactively Visualizing Ownership and Borrowing for Rust](https://github.com/rustviz/rustviz)
![[Rust-1672345640034.jpeg]]
## Links
[[2023-01-19]]
Chock full of non-obvious things that could come in really useful.
- [Rust concepts I wished I knew earlier - rauljordan::blog](https://rauljordan.com/rust-concepts-i-wish-i-learned-earlier/)
[[2022-08-08]]
A long article by [[Burntsushi]] about the use of unwrap (panicking) in [[Rust]] programs:
- [Using unwrap() in Rust is Okay - Andrew Gallant's Blog](https://blog.burntsushi.net/unwrap/)
An article going into the differences (in speed?) between [[Rust]] async and Linux threads:
- [GitHub - jimblandy/context-switch: Comparison of Rust async and Linux thread context switch time.](https://github.com/jimblandy/context-switch)
An article about Rust for Low-[[Latency]] systems by [[Brian Cantrill]]:
- [Bryan Cantrill on Rust and the Future of Low-Latency Systems – The New Stack](https://thenewstack.io/bryan-cantrill-on-rust-and-the-future-of-low-latency-systems/?utm_content=buffer7d7aa&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer)
## Async Rust
An article about [[Atomics]] in [[Rust]]:
- [Explaining Atomics in Rust - Explaining Atomics in Rust](https://cfsamsonbooks.gitbook.io/explaining-atomics-in-rust/)
An article about Pin, Unpin, writing async libraries:
- [Pin, Unpin, and why Rust needs them](https://blog.adamchalmers.com/pin-unpin/)
### Futures
![[Futures#Futures async in Rust]]