Learn rust from scratch

Learn rust from scratch
Photo by Joe Dudeck / Unsplash

Those last months I decided to learn this new fancy and hipster language, so let me share a couple of links I would now recommend. I'm coming from mostly python, but a bit of functional experience with scala, so I'm comfortable with the typing system (and I even use it in python).

Where to start

Actually check out all of their videos

The Rust Programming Language - The Rust Programming Language

The rust book. Start from here!

  1. Understand how Rust documentation looks like.
GitHub - rust-lang/rustlings: :crab: Small exercises to get you used to reading and writing Rust code!
:crab: Small exercises to get you used to reading and writing Rust code! - rust-lang/rustlings

Small exercises to practice rust

Rust on Exercism
Get fluent in Rust by solving 98 exercises. And then level up with mentoring from our world-class team.

Rust exercises. 100% would repeat

💡
Rust is secure

You'll find a similar sentence everywhere. But what does it mean secure? If you com from python or java, it will probably be hard to understand what it means, since we don't have to think about physical memory (RAM). But in C for example, you need to handle that manually, leading to possible unintended errors.

* Python and Java handle this using garbage collectors
* Rust handles it with the Ownership system. Just one piece of code can be the owner of a memory segment at the same time

More advanced resources

Introduction - Learning Rust With Entirely Too Many Linked Lists
Learning Rust With Entirely Too Many Linked Lists

Some extras

Rust API
Installation The DuckDB Rust API can be installed from crates.io. Please see the docs.rs for details. Basic API Usage duckdb-rs is an ergonomic wrapper based on the DuckDB C API, please refer to the README for details. Startup & Shutdown To use duckdb, you must first initialize a Connection handle using Connection::open(). Connection::open() takes as parameter the database file to read and write from. If the database file does not exist, it will be created (the file extension may be .db, .duckdb, or anything else). You can also use Connection::open_in_memory() to create an in-memory database. Note that for an in-memory…

Data processing? Use duckDB. Full stop

Home - Leptos
Leptos is a cutting-edge Rust web framework designed for building fast, reliable, web applications.

Full stack using just rust? Yes please!

Introduction - Leptos-Use Guide

Leptos utilities (like websockets)

GitHub - tokio-rs/axum: Ergonomic and modular web framework built with Tokio, Tower, and Hyper
Ergonomic and modular web framework built with Tokio, Tower, and Hyper - tokio-rs/axum

Server-side API (like fastAPI but sadly less nice overall)

Just for experts