Rust
lastmod 2026-05-13created 2016-09-21102 edits
Rust is a general-purpose programming language developed by Mozilla Research. It was designed to be a "safe, concurrent, practical" language, and supports pure functional programming, actor-based concurrent programming, imperative programming, and object-oriented programming styles.
Categories
Projects
- Tokio - async io
- Artichoke - Ruby made with Rust
- RustPython - Python made with Rust
- wasm-bindgen - wasm module.
- Zaplib - Open source for accelerating web apps with Rust and WASM
- Bevy - Rust-based open-source 2D/3D game engine
- Graphul - Rust web framework inspired by Express
- Dioxus - UI library for Rust inspired by React
- Nannou - Open-source creative coding framework
- A library that lets media artists, hackers, and designers express themselves with simple, fast, and reliable code
- Enables artistic expression using graphics, LEDs, lasers, audio, GUIs, and more
- A library that lets media artists, hackers, and designers express themselves with simple, fast, and reliable code
Database Libraries
- Comparison of 4 Rust backend DB libraries | GeekNews
- Diesel (v2.3.6, January 2026) — Full ORM with compile-time SQL
- SQLx (v0.8.6, current stable) — Asynchronous SQL toolkit (not an ORM)
- SeaORM (v2.0, January 2026) — Async-first dynamic ORM
- Rusqlite (v0.38.0, December 2025) — Lightweight SQLite wrapper
ETC
- safe_c.h - Giving C superpowers - a custom header file (safe_c.h)
Features
Rust was designed with the goal of being a language suited to developing server and client programs that run on the internet. In line with this goal, Rust focuses on safety, concurrent programming, and direct control of memory management. It also aims for performance on a par with C++.
Rust's syntax resembles C and C++, using braces to delimit code blocks and keywords such as if, else, and while. However, Rust and C/C++ have semantically very different syntax.
Rust is designed not to cause memory errors. Rust enforces that null pointers and uninitialized pointers do not exist. Every variable is allocated with an initial value, and the compiler detects code that accesses freed pointers in advance and raises a compile error.
The type system, influenced by Haskell, supports type classes. Also, even if a type is not specified when declaring a variable, the compiler can determine the variable's type through type inference. On the other hand, type information cannot be omitted for function arguments and return values.
Concurrent programming uses an actor-based model similar to Erlang. Each task does not share data directly and can exchange data only through message passing. To avoid the performance loss caused by copying messages, a unique box can pass a message without copying data. A unique box can be owned by only one object, and when it is passed to another task, only the ownership changes, without copying data.
The object system consists of implementations, traits, and structs or enums. A struct or enum is used to define an object's data, and an implementation, defined with the impl keyword, is used to define an object's member functions. Object inheritance is done through traits, and to avoid C++'s polymorphic inheritance problems, traits are designed so that they cannot define object members.
How to install
Installation using rustup:
Update to the latest version
Basic
Shadowing
The phenomenon where the variable x is hidden (Shadowing) by a later x variable. It has the advantage of letting you reuse variable names.
The difference from let mut is that let mut "assigns" to the variable, so an error occurs if the data type changes.
let and const
Rust Memory Container Cheat-sheet
Rust-memory-container-cs-3840x2160-dark-back.png
for JavaScript
- [Recommended] Rust Is The Future of JavaScript Infrastructure - Rust is the future of JavaScript infrastructure
Rust is a fast, reliable, and memory-efficient programming language. It has been voted the most loved programming language six years in a row ( survey ). Created by Mozilla, it is now used by Facebook , Apple , Amazon , Microsoft , and Google for systems infrastructure, encryption, virtualization, and lower-level programming.
Why is Rust now being used to replace parts of the JavaScript web ecosystem, such as minification (Terser), transpilation (Babel), formatting (Prettier), bundling (webpack), and linting (ESLint)?
- Firecracker (AWS)
- Bottlerocket (AWS)
- Quiche (Cloudflare)
- Neqo (Mozilla)
for WebAssembly
WebAssembly (WASM) is a portable low-level language that Rust can compile to. It runs in the browser, is interoperable with JavaScript, and is supported in all major modern browsers.
WASM is not yet a perfect solution, but it can help developers build very fast web experiences. The Rust team is committed to a high-quality, cutting-edge WASM implementation. For developers, this means you can have the performance advantages of Rust (vs. Go) while compiling for the web (using WASM).
Some early libraries and frameworks in this space:
- Yew
- Percy
- Seed
- Sycamore
- Stork
Rust GUIs are growing rapidly in the WASM world
Causes include the combination of Rust's cross-platform nature and WebAssembly's ease of software distribution.
- Dioxus - Interface architecture similar to React
- Tauri - Build desktop apps using the web, similar to Electron
- Xilem - Data-first architecture well aligned with the Rust language architecture
- Iced - Cross-platform GUI library focused on simplicity and type safety
- Egui - The easiest GUI library to use
- Kas - “efficient retained-state toolkit”
- Slint - Targets embedded systems, microcontrollers, and desktop
- Yew - React-like GUI framework for the web
- Bracket - Rebranded from rltk(Roguelike Toolkit). Optimized for developing Rogukelike-style games for web/desktop
- Vizia - Declarative & Reactive GUI framework
- Leptos - Isomorphic web framework
- Perseus - state-driven web development framework
- Sauron - Versatile web framework for Client/Server web app
- MoonZoon - Full-stack framework
- Relm4 - idomatic GUI library inspired by Elm and GTK4-RS
- Fltk-rs - Rust bindings for the Fast Light Toolkit
- Makepad - UI Framework + IDE
rust + WebAssembly + Game
Debugging
- GitHub - simrat39/rust-tools.nvim: Tools for better development in rust using neovim's builtin lsp
- How to debug rust applications with VIM
- Setting up Neovim for Rust Debugging — termdebug and vimspector
rust + Ethereum
Rust projects and tools
- pwasm-ethereum - Collection of externs to interact with ethereum-like network.
- Ethereum WebAssembly
- oasis_std - OASIS API reference
- Solaris
- SputnikVM - Rust Ethereum Virtual Machine Implementation
- Parity - Ethereum Rust client
- rust-web3 - Rust implementation of Web3.js library
- Wavelet - Wavelet smart contract in Rust
Defensive coding
Documentation
- Rust cheat sheet for beginners (Cheat Sheet)
- https://happygrammer.github.io/rust/cheat-seat/
- https://happygrammer.github.io/rust/rust-cheat-sheet.pdf
-
Happygrammer.github.io_-_rust-cheat-sheet.pdf
- Introduction to Rust for Python programmers
- https://indosaram.github.io/rust-python-book/ch1-00.html
- https://indosaram.github.io/rust-python-book/print.html
-
Indosaram.github.io_-_rust-python-book.pdf
See also
Favorite site
- Rust web site
- Wikipedia (en) Rust
- RUST frequently asked questions (ko)
- A story of Golang vs Rust performance benchmarking
- A half-hour to learn Rust
- [Recommended] Why are so many developers moving to Rust? I Elancer Blog
Tutorials
- [Recommended] Tour of Rust (Korean available)
- [Recommended] Foreword - The Rust Programming Language 1
- Rust for professionals
- A Rust guide for professionals familiar with other languages. Explains through examples comparing it with TypeScript, JavaScript, Java, C++, Kotlin, and others.
- [Original] Write a First Person Game in 2KB With Rust :: grantsh
- grantshandy/wasm4-raycaster: A demo raycaster for the WASM-4 engine.
- Writing an FPS (first-person shooter) without a graphics API
- Explains the essential algorithms
- Uses WASM-4 (a tiny WebAssembly-based game engine)
- Implements everything from project setup to saving game state, character movement, the map, intersections, and shadows for perspective and depth
- gurugio/quick-guide-rust-programming - Quick start to Rust programming
- [Original] Flattening Rust's Learning Curve | corrode Rust Consulting
- Rust is a language that demands a completely new way of thinking, so your mindset has a big impact on how fast you learn
- Making friends with the compiler is key; what matters is the attitude of understanding why an error message appears, not just fixing it
- Early on, it is good to start small by freely using clone(), unwrap, and the like, and refactor gradually
- Write a lot of code by hand and build intuition and muscle memory through mistakes and trial and error
- Rust has a development philosophy centered on the type system, so you need to practice reading documentation carefully and modeling with types
Guides
- Github - blog_os - Writing an OS in Rust
- Compiling Rust to WebAssembly (WebAssembly)
- Setting up a Rust development environment with Visual Studio Code
- [Recommended] So you want to live-reload Rust
- [Recommended] Impressions after a taste of Rust? :: BlaCk_Log
- Getting past "&-driven development" in Rust | GeekNews
- [Original] Getting Past “Ampersand-Driven Development” in Rust - Blog
- Clearly understanding the & that Rust beginners often end up inserting
- References (&variable) : Like lending a toy: "You can look at it, but you can't touch it. Give it back when you're done"
- Mutable References (&mut variable) : Like lending a coloring book: "You can look at it and color it however you like, but you have to give it back when you're done"
- Owned Values (variable) : Like giving a toy to someone: "Here, take it. You can use it however you want, and you don't have to give it back"
- Reference-Counted Pointers (Rc and Arc) :
- Rc is "a decoration like a balloon at a child's birthday party. Everyone can see it, but we'd rather nobody touches it. It has to stay there until all the kids leave, and cleanup starts when the last kid leaves"
- In async/multithreaded code, use Arc. It behaves the same as Rc
Embedding & FFI
- A little Rust with your C (How to use Rust from C)
- [Recommended] The (unofficial) Rust FFI Guide 3
- [Recommended] The Embedded Rust Book 4
Article
- A story of Golang vs Rust performance benchmarking (Go, Rust)
- How to choose between "Rust" and "Go" (Go, Rust)
- Comparing compile times of Rust and C++ | GeekNews
- [Original] Is coding in Rust as bad as in C++?
- [Original] Upcoming Rust language features for kernel development (LWN.net)
- Three key features: Field Projection, In-place Initialization, and Arbitrary Self Types
- These features let kernel-specific structures such as smart pointers, pinned memory (Pin), and RCU be expressed more naturally in Rust
References
- Adobe Flash
- Agent-browser
- Apache Cassandra
- ArkFlow
- Arroyo
- Arti
- Artichoke
- Automerge
- Bevy
- Brimstone
- Brush
- Burn
- Cacao
- Carbon (programming language)
- Cargo
- Cascading Style Sheets
- Cheat sheet
- Claw-code
- CodeTracer
- Comma-separated values
- Computer Language
- Conflict-free replicated data type
- Copper-rs
- Crabtime
- CubeCL
- Curriculum
- Dbcrossbar
- Deno
- Dioxus
- Discord
- Documentation generator
- DriftDB
- EDEX-UI
- Elder
- Eleventy
- Embassy
- Fast Node Manager
- Ferrite
- Firefox
- Fusion.ssg
- Game Engine
- GatsbyJS
- GCC Rust
- Gecko
- Gitmal
- Go
- GPUI
- GPUI Component
- Graphul
- Halloy
- Handy
- Hangul Office
- Hexo
- Hoisting
- Htop
- Hugo
- Hwp-rs
- Hwp.js
- Hwpers
- ImGui
and 82 more