Skip to content

Rust

December 2, 2023
November 19, 2015

Static typed, GC-free system language created by Mozilla.

The Rust Programming Language
The Rust Reference
Style Guidelines
Rust Playground
The Alternative Rust Playground by Integer 32

GitHub org:
The Rust Programming Language
rust-lang-nursery
rust-lang-deprecated

Getting started - Rust Programming Language
Other Installation Methods - Rust Forge
murarth/rusti: REPL for the Rust programming language

Rust tutorial: Get started with Rust, the language for safer code
Are we (I)DE yet?

Why the Rust language is on the rise | InfoWorld
Rust 2018 is here… but what is it? - Mozilla Hacks - the Web developer blog
A brief history of Rust at Facebook - Engineering at Meta
Rust: Turtles all the way down - YouTube
unsafe block and macro makes Rust self contained

Rust in 2018 - In Pursuit of Laziness
Announcing Rust 1.30 - The Rust Programming Language Blog
State Of Rust
Five Years of Rust | Rust Blog

All Rust features explained - YouTube ❗!important
Introduction to Rust Part 1 - YouTube
Introduction to Rust Part 2 - YouTube
Intel and Rust: the Future of Systems Programming: Josh Triplett - YouTube

zkat/rust-notes: Personal notes while learning Rust. Mainly documenting pain points along the way.
C vs. Rust: Which to choose for programming hardware abstractions | Opensource.com

Rust - YouTube
No Boilerplate - YouTube
The Rust Programming Language - YouTube
C++Now 2017: Niko Matsakis "Rust: Hack Without Fear!" - YouTube

#151: Rust with Steve Klabnik and Yehuda Katz - The Changelog
SE-Radio Episode 279: Florian Gilcher on Rust : Software Engineering Radio
Rust in Production

Getting Started

Getting Started - The Rust Programming Language

rustup.rs - The Rust toolchain installer NVM for Rust
Rustup - ArchWiki

yay -S rustup cargo-install

rustup show
rustup toolchain install stable
rustup update
rustup default stable

# install tools
rustup component add rustfmt rls

rustup install nightly

Cargo

Getting started with the Rust package manager, Cargo | Opensource.com
The Cargo Book
Configuration - The Cargo Book
Environment Variables - The Cargo Book
My top 7 Rust commands for using Cargo | Opensource.com

cargo new project # bin at ./project/
cargo new --lib library  # lib at ./library/
cargo init # at pwd

cargo build
RUSTFLAGS='-C target-feature=+crt-static' cargo build --release

cargo run
RUSTFLAGS='-C target-feature=+crt-static' cargo run --release

cargo bench
cargo test

dtolnay/semver-trick: How to avoid complicated coordinated upgrades
Specifying Dependencies - The Cargo Book
Cargo: predictable dependency management - The Rust Programming Language Blog
How Rust Solved Dependency Hell - Stephen Coakley

Cargo Workspaces - The Rust Programming Language
Specifying Dependencies - The Cargo Book

dimensionhq/fleet: 🚀 The blazing fast build tool for Rust.

Cargo tools

cargo-bins/cargo-binstall: Binary installation for rust projects
kbknapp/cargo-graph: A cargo subcommand for creating GraphViz DOT files and dependency graphs
RazrFalcon/cargo-bloat: Find out what takes most of the space in your executable.
flamegraph-rs/flamegraph: Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3

Editions

The Edition Guide

The source code is compiled to High level intermediate representation, then mid level, then LLVM IR, then machine code. Editions mostly affect MIR.

rust-lang/rustfix: Automatically apply the suggestions made by rustc

Rust Libz Blitz

The Rust Libz Blitz - The Rust Programming Language Blog
brson/rust-api-guidelines

Learn

Learn Rust - Rust Programming Language
rust-lang/rustlings: Small exercises to get you used to reading and writing Rust code! code kata

Rust Developer Bootcamp Free Training ❗!important

Learn Rust Programming Course – Interactive Rust Language Tutorial on Replit
Rust Programming Course for Beginners - Tutorial - YouTube

#Books

How to learn Rust: A resources guide for developers - TechRepublic
Latest News - Hello, Rust!
How not to learn Rust

Let's Get Rusty – Let's Get Rusty
Let's Get Rusty - YouTube

No Boilerplate
How to Learn Rust - YouTube
Rust Is Easy - YouTube the compiler teaches you
Rust is not a faster horse - YouTube

Learning Rust the wrong way - Ólafur Waage - NDC TechTown 2022 - YouTube

Getting started:
Getting started with Rust
You Want to Learn Rust but You Don’t Know Where to Start | by Shinichi Okada | Towards Data Science
Learn about Rust and how to get started | Opensource.com
Get started with Rust in Windows programming | InfoWorld
A Tour of Rust - YouTube
Rust Crash Course | Rustlang - YouTube
Intro to Rust - YouTube
Learning Rust
Learn Rust in Y Minutes
A half-hour to learn Rust 2020-01
bradtraversy/rust_sandbox: Fundamentals of the Rust language

Rust for the impatient - YouTube
Rust Talks - YouTube
Rust Tutorial Full Course - YouTube 2022-07
Let's Get Rusty - YouTube
Rust Programming Tutorial - YouTube

Hello Rust! a lighthearted live-programming channel
Hello Rust! - YouTube
Hello Rust! GitHub org
Declarative Programming in Rust - YouTube
12 Things to Help You Learn Rust - YouTube
Let's Build Snake with Rust
Rust in the Browser for JavaScripters: New Frontiers, New Possibilities - YouTube
Rust | Opensource.com

Rustaceans the community of Rust users
rust-unofficial/awesome-rust: A curated list of Rust code and resources.
gamazeps/Useful-Rust-Projects: List of community wanted libraries
ctjhoa/rust-learning: A bunch of links to blog posts, articles, videos, etc for learning Rust
mankyKitty/rust-koans: Learn Rust by making tests pass
Mercateo/rust-for-node-developers: An introduction to the Rust programming language for Node developers.
fanderzon/rust-for-nodejs-devs: Example code for the Rust for Node.js developers series

From Python to Rust - YouTube
From Python To Rust Series Archives - rebelScience
rochacbruno/py2rs: A quick reference guide for the Pythonista in the process of becoming a Rustacean
Learning Rust by Converting Python to Rust | by Shinichi Okada | Towards Data Science

Introduction | Rust for C++ Programmers nrc/r4cppp: Rust for C++ programmers
Introduction | Rust for C++ Programmers
rust-4-cpp2.pdf
30 minutes of Introduction to Rust for C++ programmers
C++ Developer Learns Rust (aka Oxidizing C++ Skills For Fun and Profit) - YouTube

Rust Your Own Lisp - DEV Community 👩‍💻👨‍💻

Rust Archives - Knoldus Blogs
fasterthanli.me
Rust review Series - Julio Merino

into_rust(): screencasts for learning Rust 2016

skyzh/type-exercise-in-rust: Learn Rust generics by implementing basic types in database systems

rust-analyzer Rust LSP

Compiler

rustc --print cfg

Rust Creator Graydon Hoare Recounts the History of Compilers - The New Stack

Cargo refused to build my project - A Rust debugging story!
The Rust compiler is still getting faster | Nicholas Nethercote
Rustlog : Why is a Rust executable large?

How to speed up the Rust compiler | Nicholas Nethercote
How to alleviate the pain of Rust compile times

google/rerast: A tool for transforming Rust code using rules

Kindelia/HVM: A massively parallel, optimal functional runtime in Rust

Winning the fight against the Rust compiler (Coherence in Rust, feat. rustc sources) only allow one specific implementation, compiler hacking

Get under the hood of Rust Language with Assembly!! Rust Programming Tutorial - YouTube

RUSTFLAGS='--emit asm' cargo build
cargo install cargo-show-asm
cargo asm <bin>::main --dev --rust

Conditional Compiling

The Manifest Format - The Cargo Book
Can someone explain how features work in Cargo? : rust

cfg - Rust By Example
Conditional compilation - The Rust Reference

Linkage

RUSTFLAGS='-C target-feature=+crt-static' cargo build
# musl is static by default
cargo build --target x86_64-unknown-linux-musl
RUSTFLAGS='-C target-feature=+crt-static' cargo build --release

Linkage - The Rust Reference

rust - How to generate statically linked executables? - Stack Overflow
"cannot produce proc-macro for crate as the target x86_64-unknown-linux-gnu does not support these crate types" with +crt-static · Issue #78210 · rust-lang/rust
Static Build of Rust Executables | Ivanovo
Building static Rust binaries for Linux | Harsh Shandilya
MUSL support for fully static binaries - The Edition Guide

Linkage - The Rust Reference
1721-crt-static - The Rust RFC Book
Enabling +crt-static in a blanket way breaks dynamic libraries including proc macros · Issue #71651 · rust-lang/rust

Striping:

TargetSize
dynamic debug gnu4.3M
static debug gnu4.3M
static release gnu5.8M
strip -s1.2M
strip = "debuginfo"1.4M
static debug musl4.4M
strip = "symbols"1.2M
static release musl412k

Cross compile

## print supported targets
rustc --print target-list
rustup target list

rustup target install i686-pc-windows-msvc x86_64-apple-darwin

rustup target add armv7-unknown-linux-musleabi
RUSTFLAGS='-C target-feature=+crt-static --emit asm' cargo build --release --target armv7-unknown-linux-musleabi

cross-rs/cross: “Zero setup” cross compilation and “cross testing” of Rust crates

warricksothr/RustBuild
zinc.rs

japaric/rust-everywhere: Use CI services to generate binary releases of your Rust program for Linux, Mac and Windows
japaric/trust: Travis CI and AppVeyor template to test your Rust crate on 5 architectures and publish binary releases of it for Linux, macOS and Windows
japaric/cross: "Zero setup" cross compilation and "cross testing" of Rust crates

kennytm/rust-ios-android: Example project for building a library for iOS + Android in Rust.
Geal/rust_on_mobile

japaric/ruststrap
Rust bare metal on ARM microcontroller
ARM v6 and v7 target · Issue #34 · richfelker/musl-cross-make "hf" stands for "hard float"

Zero cost stack overflow protection for ARM Cortex-M devices | Embedded in Rust

Android

Rust nightly for android - The Rust Programming Language Forum
Building for Android · servo/servo Wiki

Deployment

shuttle
shuttle-hq/shuttle: Build & ship backends without writing any infrastructure files.

Examples - Shuttle

Syntax

Karol Kuczmarski's Blog – patterns

Rust Means Never Having to Close a Socket

String

std::string::String - Rust
Strings - Rust By Example

String Types in Rust - Suspect Semantics
Rust: str vs String
What are the differences between Rust's String and str? - Stack Overflow

let face: char = '\u{1F600}' // char is unicode code point

a_str.to_string();  // str -> String
let a_String = String::from(a_str);  // str -> String

a_String.as_str();  // String -> str

std::fmt - Rust
std::fmt::Display - Rust
std::format - Rust format!
Formatted print - Rust By Example
Display - Rust By Example

println!("{}", a); // requires object to have Display trait
println!("{name}"); // named argument
println!("{:?}", (12, true, "hello")); // debug print
// add `#[derive(Debug)]` to your struct to enable `{:?}` output

Rc/Arc

Optimizing Immutable Strings in Rust - DEV Community
Arc::clone() cloning the smart pointer, Arc::From<String> (returns Arc<str>) real only reference to buffer
Arc in std::sync - Rust
Arc - Rust By Example

Use Arc Instead of Vec - YouTube

Containers

Lists, Arrays, Vectors: linear containers in Python, Ruby and Rust (part 3) - DEV Community 👩‍💻👨‍💻

Iterators

std::iter - Rust
std::iter::Iterator - Rust

Traits

Traits and Trait Objects in Rust · joshleeb
Traits from the Ground Up

#[derive(Trait)]

Option

std::option - Rust nullable in other languages
Option in std::option - Rust Option<T> = Some(value:T) | None

Option - Rust By Example
Option & unwrap - Rust By Example

let optional: Option<float>;

optional.unwrap(); // float or panic
optional.expect("this should be a float"); // custom error message
optional.unwrap_or(0.0) // default value
// comprehensive
let f = match optional {
  None() => panic!("this should be a float")
  Some(f) => f,
}

let inner:float = optional?; // another (more elegant) way to unwrap (or return None to propagate error up the call stack)

Option.map() in std::option - Rust map the container to different type

fn process(food: Option<Food>) -> Option<Cooked> {
    food.map(|f| Peeled(f))
        .map(|Peeled(f)| Chopped(f))
        .map(|Chopped(f)| Cooked(f))
}

Results

std::result - Rust

Like Option<T> but for is an OK<T> type

Rust's Most Important Containers 📦 10 Useful Patterns - YouTube
.unwraps() takes the value, if present; .ok_*() converts between Result and Option

Result.map() in std::result - Rust map the container to different type

Option.ok_or(), Option.ok_or-else() converts Option to Result

? operator do unwrap and return error (replacing try! macro), simplifying error handling
The ? operator for easier error handling - The Edition Guide

f.read_to_string(&mut s)?;
// is equivalent to
match f.read_to_string(&mut s) {
    Ok(_) => Ok(s),
    Err(e) => Err(e),
}

Closures

Closures
Closures - Rust By Example
Finding Closure in Rust | Huon on the internet

|val| val + x : x is captured

Modules

Local Module: mod cat; will look for ./cat.rs or cat/mod.rs
This will create a namespace cat, use cat::mod and cat::function() to access submodules and functions.
Modules - The Rust Programming Language
RustConf 2019 - The Rust 2018 Module System by Josh Triplett - YouTube

// just use `use` to import macro after 1.30
// https://doc.rust-lang.org/1.29.0/book/first-edition/macros.html?highlight=macro_use#scoping-and-macro-importexport
#[macro_use]
extern crate log;

use log::{debug, error, info, trace, warn};

Macros

cargo expand generate files with macros expand

macro_rules! - Rust By Example
Ace Rust Macros ♠️ the declarative kind - YouTube

Attributes - Rust By Example

Procedural Macros (and custom derive) - The Rust Programming Language as compiler plugin, used in Rocket
Procedural macros by nrc · Pull Request #1566 · rust-lang/rfcs
Procedural Macros in Rust · joshleeb
dtolnay/proc-macro-hack: Procedural macros in expression position
The Little Book of Rust Macros
6 useful Rust macros that you might not have seen before

Rhai

"RustScript"

Rhai – Embedded Scripting for Rust

Books

Learn Rust - Rust Programming Language
Docs that is available locally with rustup doc

First party
The Rust Programming Language The Book
Experiment Introduction - The Rust Programming Language The Book with exercises
Rust By Example
The Edition Guide
Rust Forge
The Rust Reference
Rust Cookbook

Rust API Guidelines
The Rustonomicon unsafe Rust
What is rustdoc? - The rustdoc book
What is rustc? - The rustc book
Rust Compiler Development Guide
Rust Compiler Error Index
Command Line Applications in Rust
Asynchronous Programming in Rust
Rust RFCs

The Little Book of Rust Macros
Learning Rust With Entirely Too Many Linked Lists Rust's type safety makes this has to be done in unsafe mode
24 days of Rust
Introduction to Programming Using Rust
Rust Design Patterns
vinodotdev/node-to-rust

The Rust Language & Ecosystem - The Rust eBookshelf
Tracking issue for RFC 1828: Rust Bookshelf · Issue #39588 · rust-lang/rust
Download 'The Rust Programming Language' E-Books (PDF, EPUB, MOBI) OBSOLETE

Tips and Tricks

Speedy Desktop Apps With GTK and Rust | Nora Codes
ENOSPC pitfalls

Pascal Hertleif - Writing Idiomatic Libraries in Rust - YouTube

Things you can’t do in Rust (and what to do instead) - LogRocket Blog

tidunguyen/flexible-fn-rs: Demonstration of flexible function calls in Rust with function overloading, named arguments and optional arguments

5 Better ways to code in Rust - YouTube VS Code setup

backtrace

std::backtrace - Rust
backtrace - Rust

RUST_BACKTRACE=1 my_rust_app
RUST_BACKTRACE=1 cargo run --bin my_binary

# for debugging compile error
RUST_BACKTRACE=1 cargo build

debugging - What is RUST_BACKTRACE supposed to tell me? - Stack Overflow

Rust Lang Server

Introducing Rust Language Server, source release - tools and infrastructure - Rust Internals
rust-lang-nursery/rls: Repository for the Rust Language Server (aka RLS)
RLS now available on nightly
The Rust IDE and editor setup guide

Internals

Fearless Concurrency with Rust - The Rust Programming Language Blog
Introducing MIR - The Rust Programming Language Blog
Mozilla's Rust language doubles down on speed and simplicity | InfoWorld
rust-lang/miri: An interpreter for Rust's mid-level intermediate representation

Visualizing memory layout of Rust's data types - YouTube

How debuggers really work | Opensource.com
Using unsafe tricks to examine Rust data structure layout

The Tale of a Bug in Arc: Synchronization and Data Races Arc = Atomically Reference Counted

Ownership in Rust, Part 1 – Thomas Countz – Medium
Ownership in Rust, Part 2 – Thomas Countz – Medium

Rust Concurrency with Alex Crichton | Software Engineering Daily on ownership

Ownership Model

Understanding Ownership - The Rust Programming Language

TypeOwnershipAlias?Mutate?
TOwned
&TShared Reference✗ (while aliasing)
&mut TMutable Reference✔ (original reference disabled)

Passing variables to funtion moves ownership to the function by default.
Closures borrow references by default.

let r: &'l Book = &book; // explicitly define lifetime

// return value have same lifetime as input Vector
fn first<'l>(v: &'l Vec<Book>) -> &'l String {
  return &v[0];
}
// shorthand
fn first(v: &Vec<Book>) -> &String {
  return &v[0];
}

rust-lang/polonius: Defines the Rust borrow checker.
What is Polonius? - Polonius

Rust: What is Ownership and Borrowing? - YouTube
Rust Demystified 🪄 Simplifying The Toughest Parts - YouTube borrowing, references and lifetime
Rust Mutability, Borrows, and Moves - the ULTIMATE Tutorial! - YouTube 50 mins

Why Rust's ownership/borrowing is hard
Why Rust's ownership/borrowing is hard | Hacker News
Graphical depiction of ownership and borrowing in Rust - Rufflewind's Scratchpad
Fear not the Rust Borrow Checker
Ownership in Rust, Part 1 - Thomas Countz - Medium
Ownership in Rust, Part 2 - Thomas Countz - Medium
A closer look at Ownership in Rust | Articles by thoughtram
Rust Mutability, Moving and Borrowing - The Straight Dope - tutorials - The Rust Programming Language Forum
Rust's Ownership model for JavaScript developers | Articles by thoughtram
Rust's Rules Are Made to Be Broken | Warp

Lifetimes

Understanding lifetimes - help - The Rust Programming Language Forum
Validating References with Lifetimes - The Rust Programming Language
Lockout, Part 1: Everything you know about lifetimes is wrong. | The Diagonal Device

Pinning

Pin, Unpin, and why Rust needs them self-referential object
Pin and suffering - fasterthanli.me


Testing

mitsuhiko/insta: A snapshot testing library for rust

Servo

[1505.07383] Experience Report: Developing the Servo Web Browser Engine using Rust
Programming Servo: A ‘script’ event-loop – Programming Servo – Medium

Derivatives

willcrichton/lia: A high-level language for Rust

How Rust can replace C, with Python's help | InfoWorld

Commentaries

Rustlog

Pascal’s scribbles - Pascal’s Scribbles
Fun facts about Rust's growing popularity 2017

Rust is being destroyed from the inside - YouTube

Rust: A Language for the Next 40 Years - Carol Nichols - YouTube slides

When Zero Cost Abstractions Aren’t Zero Cost | Considerations on Codecrafting
Using Rust at a startup: A cautionary tale
Don't Learn Rust - YouTube

Rust: Built to Last
What is the Rust language? Safe, fast, and easy software development | InfoWorld
What you need to know about Rust in 2020 | Opensource.com
Why to choose Rust as your next programming language | Opensource.com
An In-Depth Comparison of Rust and C++ | by Adiákopi Mními | Better Programming

Why Discord is switching from Go to Rust - Discord Blog
My first impressions of Rust - DEV Community 👩‍💻👨‍💻
What is Rust and why is it so popular? - Stack Overflow Blog
How do Rust and Go compare against each other? - Quora
Rust vs. Go: Why They’re Better Together – The New Stack
Rust vs Go in 2023 — Bitfield Consulting
Rust and Go — Medium
How Rust Compares to Other Programming Languages - The New Stack
Adventures in Rust
The Observation Deck » Falling in love with Rust Statemaps of dtrace
Interview with Steve Klabnik: How Rust Compares to Other Languages and More | Codementor
Why I ❤ Rust // Speaker Deck
My Key Learnings after 30,000 LOC in Rust – Dotan Nahum – Medium
Programming in Rust: the good, the bad, the ugly. – Hacker Noon
“Rust is the future of systems programming, C is the new Assembly”: Intel principal engineer, Josh Triplett | Packt Hub
Rust 语言的编程范式 | 酷 壳 - CoolShell
Rust from the view of a Java geek

Why I think C++ is still a desirable coding platform compared to Rust
Why i think C++ is better than rust - YouTube

Should you use RUST as your FIRST programming language? - YouTube
Why You SHOULDN'T Learn Rust - YouTube
Prime Learns The Truth About Rust - YouTube
Theo Line, The Line of Prime
Don't choose Rust when requirement is flexible

Dwelo

We Rewrote Our IoT Platform in Rust and Got Away With It
Abusing Fire for Light - Dwelo Research and Development - Medium

Codeship

Coming to Rust from Ruby - via @codeship | via @codeship
Rust: Systems Programming with a Safety Net - via @codeship | via @codeship

Armin Ronacher

Entries tagged “rust” | Armin Ronacher's Thoughts and Writings

Such a Little Thing: The Semicolon in Rust | Armin Ronacher's Thoughts and Writings
UCS vs UTF-8 as Internal String Encoding | Armin Ronacher's Thoughts and Writings
Revenge of the Types | Armin Ronacher's Thoughts and Writings
A Fresh Look at Rust | Armin Ronacher's Thoughts and Writings
On Error Handling in Rust | Armin Ronacher's Thoughts and Writings
Don't Panic! The Hitchhiker's Guide to Unwinding | Armin Ronacher's Thoughts and Writings
Improved Error Handling in Rust | Armin Ronacher's Thoughts and Writings
Rust for Python Programmers | Armin Ronacher's Thoughts and Writings
Rust and Rest | Armin Ronacher's Thoughts and Writings

Joel's Journal

A Simple Web App in Rust, Part 1
A Simple Web App in Rust, Part 2a
A Simple Web App in Rust, Part 2b
A Simple Web App in Rust, Part 3 -- Integration
A Simple Web App in Rust, Part 4 -- CLI Option Parsing

Niko Matsakis

Baby Steps

nikomatsakis/rust-tutorials-keynote: Keynote versions of my Rust tutorials.
www.rust-tutorials.com/exercises/
www.rust-tutorials.com/RustConf16/

Matt Gathu

Writing a Command Line Tool in Rust
Testing a Rust Command Line Tool
Rust for Python Programmers by Matt Gathu


Crates

crates.io: Rust Package Registry
Lib.rs — home for Rust crates // Lib.rs
Crate List - Blessed.rs

The best Rust frameworks to check out in 2019 - LogRocket Blog
Rust blueprint project - announcements - The Rust Programming Language Forum

Diesel Safe, Extensible ORM and Query Builder
launchbadge/sqlx: 🧰 The Rust SQL Toolkit.
tafia/quick-xml: Rust high performance xml reader and writer reference the design
botika/yarte: Yarte stands for Yet Another Rust Template Engine, is the fastest template engine
typenum Docs.rs bits and int parser

12 Killer Rust Libraries You Should Try – Dotan Nahum – Medium
Rust Must-Know Crates - DEV Community 👩‍💻👨‍💻

Standard Library

std - Rust
async_std - Rust
async-rs/async-std: Async version of the Rust standard library

HTTP/HTML

hyper.rs An http library for Rust
Skip the Framework: Build A Simple Rust API with Hyper - DEV Community 👩‍💻👨‍💻

utkarshkukreti/select.rs: A Rust library to extract useful data from HTML documents, suitable for web scraping.
SimonSapin/kuchiki: (朽木) HTML/XML tree manipulation library for Rust

Templating in rust » AWWY?
sunng87/handlebars-rust: Rust templating with Handlebars
djc/askama: Type-safe, compiled Jinja-like templates for Rust
Keats/tera: A template engine for Rust based on Jinja2/Django

Web Backend

Are we web yet? Getting there.

A web application completely in Rust – Sascha Grunert – Medium
saschagrunert/webapp.rs: A web application completely written in Rust.

Practical Rust Web Development - API Rest - DEV Community 👩‍💻👨‍💻
Build an API in Rust with JWT Authentication using Nickel.rs
Wiki - ActuallyUsingIron
Creating Expedient Microservices in Rust and Diesel - via @codeship | via @codeship
Intro to Web Development with Rust for NodeJS Developers - DEV Community 👩‍💻👨‍💻 series
Auth Web Microservice with rust using Actix-Web 1.0 - Complete Tutorial - Harry Gill
Rust 🦀 CRUD Rest API with Docker 🐳 - DEV Community

Iron - Rust web application framework
Rustless - API micro-framework for Rust
nickel.rs - web application framework for rust
pencil - Rust inspired by Flask
warp - crates.io: Rust Package Registry
gotham - crates.io: Rust Package Registry

actix - Rust
Build A Rust Backend (Really FAST Web Services with Actix Web) - YouTube

axum - Rust
axum - crates.io: Rust Package Registry
tokio-rs/axum: Ergonomic and modular web framework built with Tokio, Tower, and Hyper

Rocket: Web Framework for Rust
show_notes::cysk::rocket - Rust
Rust Rocket Series Series' Articles - DEV Community
Build Web Apps With RUST (aka Intro Into Web Framework ‘Rocket’) - YouTube

http-rs/tide: Fast and friendly HTTP server framework for async Rust
Tide is perhaps my favorite Rust web app framework. - YouTube

Writing a proxy in Rust and why it is the language of the future - Medium
MovingGauteng/shorty-rs: A simple URL shortener, written in Rust and gRPC

Web Frontend

see web-assembly.md#rust

The Path to Rust on the Web
A web application completely in Rust – Sascha Grunert – Medium

koute/stdweb: A standard library for the client-side Web
koute/cargo-web: A Cargo subcommand for the client-side Web

leptos - Rust
gbj/leptos: Build fast web applications with Rust.

Introduction | Yew
yewstack/yew: Rust / Wasm framework for building client web apps
Yew Megatutorial Series' Articles - DEV Community
davidedelpapa/yew-tutorial: Tutorial for WASM using Rust and Yew
Patternfly Yew Quickstart
A Rusty frontend: Patternfly & Yew — ctron's blog
Build A Rust Frontend (Really FAST Web Apps with Yew) - YouTube

CLI

Getting Started with Systems Programming with Rust (Part 1) - DEV Community
Getting Started with Systems Programming with Rust (Part 2) - DEV Community

Rust2018 And The Great Cli Awakening
rust-crates/ergo: the ergo crate ecosystem: making rust's ecosystem more ergonomic, therefore more fun.

clap.rs – Fast. Configurable. Argument Parsing for Rust
clap-rs/clap: A full featured, fast Command Line Argument Parser for Rust

Get started with quicli
killercup/quicli: Quickly build cool CLI apps in Rust.
Writing CLIs in Rust is awesome obsoleted by clap.rs 3?

structopt - Rust
TeXitoi/structopt: Parse command line argument by defining a struct.

redox-os/termion: Mirror of https://gitlab.redox-os.org/redox-os/termion
cpjreynolds/rustty: A terminal UI library

Logger

log - Rust
pretty_env_logger - Rust
log4rs - Rust
syslog - Rust

Geal/nom: Rust parser combinator framework

Image Processing

silvia-odwyer/photon: ⚡ Rust/WebAssembly image processing library
imazen/imageflow: High-performance image manipulation for web servers. Includes imageflow_server, imageflow_tool, and libimageflow
magiclen/image-convert: A high level library for image identification, conversion, interlacing and high quality resizing.
nlfiedler/magick-rust: Rust bindings for ImageMagick

GUI

Are we GUI yet? 2019
Rust GUI: Introduction, a.k.a. the state of Rust GUI libraries (As of January 2021) - DEV Community
Why is building a UI in Rust so hard? | Warp

Rust 2020: GUI and community | Raph Levien’s blog
Advice for the next dozen Rust GUIs | Raph Levien’s blog

iced - A cross-platform GUI library for Rust
iced-rs/iced: A cross-platform GUI library for Rust, inspired by Elm

Overview - Druid
linebender/druid: A data-first Rust-native UI design toolkit.

audulus/rui: Experimental Rust UI library

fruiframework/frui: A developer-friendly framework for building user interfaces in Rust

rust-windowing/winit: Window handling library in pure Rust

CXX-Qt Documentation
KDAB/cxx-qt: Safe interop between Rust and Qt

leptos-rs/leptos: Build fast web applications with Rust.

Dioxus

Dioxus | An elegant GUI library for Rust
IntroductionDemonthos/sledgehammer_bindgen Rust binding to JSDOM

Xilem

targets to be a cross-platform, cross-language rendering engine

linebender/xilem: An experimental Rust native UI framework
linebender/piet-gpu: An experimental GPU compute-centric 2D renderer.

Xilem: an architecture for UI in Rust | Raph Levien’s blog
linebender/xilem: An experimental Rust native UI framework
High Performance Rust UI - YouTube

Data Science

rust-ndarray
ndarray - crates.io: Rust Package Registry
Rust for Data Science: Tutorial 1 - DEV Community

Concurrency

rayon-rs/rayon: Rayon: A data parallelism library for Rust
How Rust makes Rayon's data parallelism magical - Red Hat Developer

MAY - Rust Stackful Coroutine Library | Xudong-Huang's Blog
Rust parallelism for non-C/C++ developers – NEAR Protocol – Medium
Fearless Concurrency - The Rust Programming Language
Rust Concurrency Explained - YouTube

Weld
Interview with Weld’s main contributor: accelerating numpy, scikit and pandas as much as 100x with Rust and LLVM

File I/O

Getting Started with Rust: Working with Files and Doing File I/O | Linux Journal

Async/Future

👋🏽 Welcome - wg-async

Explained: How does async work in Rust? – Levelup Your Coding
Getting Started - Asynchronous Programming in Rust
Async Rust in Practice: Performance, Pitfalls, Profiling - The New Stack
Intro to async/.await in Rust - YouTube

futures - Rust
Explained: Rust Futures for Web Development – ITNEXT
Understanding Futures In Rust -- Part 1 | Viget
Understanding Futures in Rust -- Part 2 | Viget

Byron/github-star-counter: A playground to test ergonomics of Rust async programming

bytedance/monoio: Rust async runtime based on io-uring.

Rust's Journey to Async/Await - YouTube
Rust has Future and await built-in but lacks an async runtime (executor), use tokio

DataDog/glommio: Glommio is a thread-per-core framework that aims to make the task of writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans. coroutine on io-uring

Tokio

Tokio fast asynchronous I/O framework, uses io-uring
Tokio internals: Understanding Rust's asynchronous I/O framework from the bottom up : Caffeinated Bitstream
Creating a Chat Server with async Rust and Tokio - YouTube

mio - Rust
tokio-rs/mio: Metal IO library for Rust

use std::time:Duration;
use tokio::time::sleep;

#[tokio::main]
async fn main() {
  let handles: Vec<JoinHandle<()>> = vec![]

  for i: i32 n 0..2{
    let handle: JoinHandle<()> = tokio::spawn(future: async move {
      my_function.await(i);
    });

    handles.push(handle);
  }
}

async fn my_function(i: i32) {
  sleep(Duration::from_millis(50)).await;
  // tokio's sleep current Future instead of entire thread
  return i+1;
}

tokio-rs/console: a debugger for async rust!

Linters

rust-lang-nursery/rustfmt: Format Rust code
rust-lang-nursery/rust-clippy: A bunch of lints to catch common mistakes and improve your Rust code

regexident/rustfmt-configs-guide: A visual guide for rustfmt's configs

#perfmatters

rustc performance data
Is It Time to Rewrite the Operating System in Rust? - YouTube

Benchmark tests
Benchmarking in Rust — Llogiq on stuff
Performance Tuning in Rust using Benchmarking and Perf

rust-lang/rustc-perf: Website for graphing performance of rustc

bheisler/criterion.rs: Statistics-driven benchmarking library for Rust

Measuring Memory Usage in Rust with rust-analyzer

SIMD for faster computing - The Edition Guide with #[cfg()] and std::arch

"NTFS really isn't that bad" - Robert Collins (LCA 2020) - YouTube optimizing rustup in WSL2

GPU

termoshtt/accel: GPGPU Framework for Rust

Running Rust on the GPU with Accel | bheisler.github.io
Writing a GPU-Accelerated Path Tracer in Rust - Part 1 | bheisler.github.io
Writing a GPU-Accelerated Path Tracer in Rust - Part 2 | bheisler.github.io

Operating System

Writing an OS in Rust
Ashley Williams - intermezzOS: a teaching operating system - YouTube
Writing an Embedded Operating System in Rust - Alistair Francis, Western Digital - YouTube

Embedded system

Rust Embedded

Embedded Rust documentation
The Embedded Rust Book

Use Rust for embedded development | Opensource.com

Embassy
embassy-rs/embassy: Modern embedded framework, using Rust and async.

miselin/rustic: Rustic Embedded Framework Rust framework for embedded system, 😴inactive
Program the real world using Rust on Raspberry Pi | Opensource.com

Tock Embedded Operating System
Tock Tutorial

rust-embedded/cortex-m-quickstart: Template to develop bare metal applications for Cortex-M microcontrollers
Learn Embedded Rust WITHOUT Any Expensive Hardware | Rust ARM QEMU Cargo Tutorial - YouTube

Redox

Redox - Your Next(Gen) OS
Rust's Redox OS could show Linux a few new tricks | InfoWorld

Rust from C/Other languages

Linkage - The Rust Reference cdylib/staticlib
The Rust FFI Omnibus
#[no_mangle], extern, write C header files
Rust FFI: Sending strings to the outside world | Huy's Blog
Overview - The (unofficial) Rust FFI Guide
Exposing a Rust library to C
Complex types with Rust’s FFI. Interop with object methods, structs… | by Jim Fleming | Jim Fleming | Medium
std::boxed::Box - Rust for non-cloning data

rusty-binder / rusty-binder · GitLab not maintained
Sean1708/rusty-cheddar: A Rust crate for automatically generating C header files from Rust source file. evloving to rusty-binder

Day 23 - calling Rust from other languages | 24 days of Rust
regex/regex-capi at master · rust-lang/regex

jameysharp/corrode: C to Rust translator
Project for porting C to Rust gains Mozilla's backing | InfoWorld

C from Rust

Unsafe Rust - The Rust Programming Language

The bindgen User Guide
rust-lang/rust-bindgen: Automatically generates Rust FFI bindings to C (and some C++) libraries.
Using C Libraries in Rust. A practical guide to FFI using bindgen… | by Jeff Hiner | Dwelo Research and Development | Medium
Wrapping Unsafe C Libraries in Rust | by Jeff Hiner | Dwelo Research and Development | Medium

libc - Rust
libloading - Rust
alexcrichton/gcc-rs: Rust library for build scripts to compile C/C++ code into a Rust library
dtolnay/cxx: Safe interop between Rust and C++

Calling C from Rust - Julia Evans
A little C with your Rust - The Embedded Rust Book


koute/pinky: An NES emulator written in Rust
quickjs-zh/quickjs-rs: Rust bindings to QuickJS
dtolnay/async-trait: Type erasure for async trait methods
ruffle-rs/ruffle: A Flash Player emulator written in Rust