Add content
This commit is contained in:
parent
1db227f540
commit
32bcca1530
1 changed files with 96 additions and 8 deletions
104
rust-intro.org
104
rust-intro.org
|
@ -70,34 +70,122 @@
|
||||||
- Careless (use of ~unsafe~ in) libraries can secretly break
|
- Careless (use of ~unsafe~ in) libraries can secretly break
|
||||||
safety guarantees.
|
safety guarantees.
|
||||||
|
|
||||||
|
** Where to start?
|
||||||
|
*** First Steps
|
||||||
|
- [[https://tourofrust.com/TOC_en.html][Tour of Rust]]
|
||||||
|
- [[https://doc.rust-lang.org/book/][The Rust Book]] (~$ rustup docs --book~)
|
||||||
|
- [[https://dhghomon.github.io/easy_rust/Chapter_1.html][Rust in Easy English]]
|
||||||
|
- [[https://doc.rust-lang.org/rust-by-example/][Rust by Example]] (~$ rustup docs --rust-by-example~)
|
||||||
|
- [[https://doc.rust-lang.org/std/][The Rust Standard Library]] (~$ rustup docs --std~)
|
||||||
|
- [[https://doc.rust-lang.org/nomicon/][The Rustonomicon]]: About unsafe Rust (~$ rustup docs --nomicon~)
|
||||||
|
- Use '~$ rustup help docs~' to get an overview
|
||||||
|
|
||||||
|
*** Helpful sites
|
||||||
|
- [[https://cheats.rs][cheats.rs]]
|
||||||
|
- [[https://programming-idioms.org/cheatsheet/Rust][programming-idioms.org]]
|
||||||
|
|
||||||
|
** Where to find help and stay up to date
|
||||||
|
*** Chat (Discord)
|
||||||
|
- [[https://discord.gg/rust-lang][The Rust Programming Language]]
|
||||||
|
- [[https://discord.com/invite/tcbkpyQ][The Rust Programming Language Community Server]]
|
||||||
|
|
||||||
|
*** Boards/Blogs
|
||||||
|
- [[https://blog.rust-lang.org/][Rust Blog]]
|
||||||
|
- [[https://www.reddit.com/r/rust][r/rust]]
|
||||||
|
- [[https://this-week-in-rust.org/][This Week in Rust]]
|
||||||
|
|
||||||
* Cargo
|
* Cargo
|
||||||
** Cargo
|
** Cargo
|
||||||
|
#+BEGIN_CENTER
|
||||||
|
\Huge *Cargo*
|
||||||
|
#+END_CENTER
|
||||||
|
|
||||||
#+ATTR_LaTeX: :height 0.4\textwidth
|
#+ATTR_LaTeX: :height 0.4\textwidth
|
||||||
[[./img/cargo.png]]
|
[[./img/cargo.png]]
|
||||||
|
|
||||||
** What is it?
|
** What is it?
|
||||||
- Package manager
|
- Package manager
|
||||||
- Build tool
|
- Build tool
|
||||||
|
- A Cargo project contains least one crate
|
||||||
|
|
||||||
|
** Docs
|
||||||
|
- [[https://doc.rust-lang.org/cargo/index.html][The Cargo Book]] (~$ rustup docs --cargo~)
|
||||||
|
|
||||||
|
** Cargo commands/plugins
|
||||||
|
*** What I typically use
|
||||||
|
- ~audit~: Audit ~Cargo.lock~ for security vulnerabilities.
|
||||||
|
- ~bloat~: Identify which dependency adds how much bloat.
|
||||||
|
- ~checkmate~: Run a list of checks (~check~, ~format~, ~build~,
|
||||||
|
~test~, ~doc~, ~audit~).
|
||||||
|
- ~clippy~: Linter and static code analysis.
|
||||||
|
- ~deb~: Automatically create a binary Debian package.
|
||||||
|
- ~edit~: Modify your ~Cargo.toml~ from the command line.
|
||||||
|
- ~flamegraph~: Generate flamegraphs about anything.
|
||||||
|
- ~fmt~: Format Rust code according to style guidelines.
|
||||||
|
- ~install-update~: Keep all your Cargo commands up to date.
|
||||||
|
|
||||||
* Setup
|
* Setup
|
||||||
|
** Install the Rust-Toolchain
|
||||||
|
*** Install Rust
|
||||||
|
From [[https://rustup.rs][rustup.rs]]:
|
||||||
|
~$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh~
|
||||||
|
|
||||||
|
*** Rustup: The Rust toolchain installer
|
||||||
|
- Check for new versions: ~$ rustup check~
|
||||||
|
- Update the toolchain: ~$ rustup update~
|
||||||
|
- Update rustup itself: ~$ rustup self update~
|
||||||
|
- Install Rust nightly (daily builds):
|
||||||
|
~$ rustup toolchain install nightly~
|
||||||
|
- Activate nightly globally: ~$ rustup default nightly~
|
||||||
|
- Activate nightly locally (in current dir):
|
||||||
|
~$ rustup override set nightly~
|
||||||
|
|
||||||
* Hands on
|
* Hands on
|
||||||
|
|
||||||
|
* Testing
|
||||||
|
|
||||||
|
* Documentation
|
||||||
|
|
||||||
* IDE support
|
* IDE support
|
||||||
|
[[https://areweideyet.com/][Are we IDE yet]]
|
||||||
* Cargo plugins
|
|
||||||
|
|
||||||
* WebDev
|
|
||||||
|
|
||||||
* Embedded
|
|
||||||
|
|
||||||
* (Standard?) crates
|
* (Standard?) crates
|
||||||
|
- [[https://crates.io][crates.io]]/[[https://lib.rs][lib.rs]]
|
||||||
|
- [[https://github.com/rust-unofficial/awesome-rust][Awesome Rust]]
|
||||||
|
|
||||||
* Further information
|
- clap (command line argument parser)
|
||||||
|
- env_logger, log
|
||||||
|
- dotenv
|
||||||
|
- serde
|
||||||
|
- lazy_static, once_cell (globality, singleton, lazy initialization)
|
||||||
|
- nom
|
||||||
|
- tokio
|
||||||
|
|
||||||
|
** Databases
|
||||||
|
- sqlx
|
||||||
|
- diesel
|
||||||
|
|
||||||
|
** WebDev
|
||||||
|
[[https://www.arewewebyet.org/][Are we web yet]]
|
||||||
|
|
||||||
|
- Actix
|
||||||
|
- Hyper
|
||||||
|
- Rocket
|
||||||
|
- reqwest
|
||||||
|
|
||||||
|
** Embedded
|
||||||
|
[[https://niclashoyer.github.io/areweembeddedyet/][Are we embedded yet]]
|
||||||
|
[[https://niclashoyer.github.io/areweembeddedyet/][Awesome Embedded Rust]]
|
||||||
|
[[https://docs.rust-embedded.org/embedonomicon/][Embedonomicon]]
|
||||||
|
|
||||||
|
- avr
|
||||||
|
- stm
|
||||||
|
- msp430
|
||||||
|
- esp32
|
||||||
|
|
||||||
* Footnotes
|
* Footnotes
|
||||||
[fn:1] [[https://commons.wikimedia.org/wiki/File:Bruine_roest_op_tarwe_(Puccinia_recondita_f.sp._tritici_on_Triticum_aestivum).jpg][Wikimedia]]
|
[fn:1] [[https://commons.wikimedia.org/wiki/File:Bruine_roest_op_tarwe_(Puccinia_recondita_f.sp._tritici_on_Triticum_aestivum).jpg][Wikimedia]]
|
||||||
[fn:2] Copied list from: https://cheats.rs.
|
[fn:2] Copied from: https://cheats.rs.
|
||||||
[fn:3] Work on GCC: [[https://rust-gcc.github.io/][rust-gcc]] and [[https://news.ycombinator.com/item?id=27775544][gcc rust backend]].
|
[fn:3] Work on GCC: [[https://rust-gcc.github.io/][rust-gcc]] and [[https://news.ycombinator.com/item?id=27775544][gcc rust backend]].
|
||||||
[fn:4] [[https://blog.rust-lang.org/2020/04/17/Rust-survey-2019.html#why-not-use-rust][Rust survey]]
|
[fn:4] [[https://blog.rust-lang.org/2020/04/17/Rust-survey-2019.html#why-not-use-rust][Rust survey]]
|
||||||
[fn:5] [[https://news.ycombinator.com/item?id=23538220][The Rust compiler isn't slow; we are]]
|
[fn:5] [[https://news.ycombinator.com/item?id=23538220][The Rust compiler isn't slow; we are]]
|
||||||
|
|
Loading…
Reference in a new issue