Outline of the Rust programming language
In-game article clicks load inline without leaving the challenge.
The following outline is provided as an overview of and topical guide to Rust:
Rust is a multi-paradigm programming language emphasizing performance, memory safety, and concurrency. Rust was initially developed by Graydon Hoare starting in 2006, later sponsored and maintained by Mozilla Research starting in 2009, and first publicly released in 2010, with version 1.0 released in 2015. Rust is syntactically similar to C++ but guarantees memory safety without requiring a garbage collector.
What type of language is Rust?
- Programming language – artificial language designed to communicate instructions to a computer
- Compiled language – implemented through compilers rather than interpreters[user-generated source?]
- General-purpose programming language
- Multi-paradigm programming language – supports functional programming, imperative programming, concurrent programming.
- Statically typed programming language – type checking performed at compile time
- Systems programming language – designed for low-level programming and operating system development[user-generated source?]
- Memory-safe language – prevents common undefined behavior like dangling pointers and buffer overflows
History of Rust
- Graydon Hoare – creator of Rust starting in 2006
- Mozilla – original sponsor and maintainer of Rust starting in 2009
- Cargo (software) – introduced as Rust’s official package manager and build system in 2014
- Rust Foundation – current steward of the Rust project since its inception in 2021
General Rust concepts
- Asynchronous I/O
- Arrays and vectors
- Borrow checker
- Closures
- Concurrency
- Crates and modules
- Enums in Rust
- Error handling
- Functions
- Generics
- If statements and booleans
- Iterators
- Lifetimes
- Macros
- Memory management
- Ownership
- Pattern matching
- Serialization
- Smart pointers
- Strings
- Tuples and structs
- Traits
- Type inference
- Unit testing
- Variables
Issues / Limitations
- Compile time performance
- Ecosystem maturity
Rust toolchain
Compilers
- rustc – official Rust compiler
- LLVM – Rust backend uses LLVM for code generation
- mrustc – alternative Rust compiler written in C++
- Cranelift – JIT compiler backend used in Wasmtime
Build and package management
Rust libraries and frameworks
- Rocket – web framework focused on type safety
- Serde – framework for serialization and deserialization supporting JSON, YAML, TOML, and more.
- Tokio – asynchronous runtime for Rust
Testing and benchmarking
- Criterion.rs – benchmarking library
- Built-in unit testing with Cargo
Notable projects written in Rust
Example source code
- Articles with example Rust code
Rust publications
Books about Rust
- The Rust Programming Language – Steve Klabnik and Carol Nichols
- The Secrets of Rust: Tools – Bitfield Consulting
- Effective Rust – David Drysdale
- Rust for Rustaceans – Jon Gjengset
- Programming Rust – Jim Blandy, Jason Orendorff, and Leonora Tindall
- Rust in Action – Tim McNamara
- Zero to Production in Rust – Luca Palmieri
Rust dialects and related languages
- Dyon – rusty dynamically typed scripting language
- Fe – inspired by Rust, smart contract language for the Ethereum blockchain
- Move – originally developed for the Diem blockchain
- Sway – Rust-based language for smart contracts
Rust learning resources
Competitive programming
- LeetCode – supports Rust submissions
- HackerRank – includes Rust challenges
- Codeforces – supports Rust in contests
See also
Outlines of other programming languages
- Outline of the C programming language
- Outline of the C sharp programming language
- Outline of the C++ programming language
- Outline of the Java programming language
- Outline of the JavaScript programming language
- Outline of the Perl programming language
- Outline of the Python programming language