isaacadams / welcome-to-rust

a guideline to getting started with rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Welcome To Rust 🦀

a guideline to getting started with rust

Guides

  1. The Rust Book
  2. Setup Dev Environment
  3. Rust the Right Way
  4. How to Not Learn Rust
  5. Practice on Exercism
  1. Memory
  2. Ownership
  3. Moving
  4. MARSAW
  5. Lifetimes
  6. Dynamic vs Static Dispatch
  7. Smart Pointers
  8. Errors
  9. Performance
  10. Strings
  1. My Common Crates
  2. Logging
  3. Serialization

Async

Rust does not have a standard async runtime. The most popular is tokio.

Multi-threading and Concurrency

Database Development & SQLx

Database interaction is a fundamental and complex aspect of backend development. If you have done any backend work, it is likely you have seen things like the "repository pattern", ORMs, connection strings, queries, etc.

Some of those things are great, others not so much. For instance, ORMs. dun dun dun. While ORM frameworks were introduced to help reduce complexity (does anyone ever create something intending to increase complexity?), it often ends up increasing it. Developers have gone to extreme lengths to keep themselves from ever having to leave the comfort zone of their favorite langauge. Truthfully, ORMs were made because developers don't like SQL and/or don't want to learn it.

As it turns out, there is no subsitute for SQL. And in trying to 'reduce the complexity of SQL', the manufactured layer (the ORM) between the code and the database has only been a welcome opportunity for complexity and inefficiency to take hold and thrive.

SQLx was created to remove this manufactured layer. Using a tool like SQLx does, generally speaking, required more knowledge of relational databases and the query language (SQL) itself. However, the payoff is enormous.

Tools

CLI Development

  1. Procedural Macros
  2. Macro Helpers

Writing Rust Documentation

https://doc.rust-lang.org/rustdoc/how-to-write-documentation.html

Writing Rusty APIs

https://deterministic.space/elegant-apis-in-rust.html#dont-stringly-type-your-api

About

a guideline to getting started with rust