Rust is a programming language that focuses on performance, programming abstraction and security while keeping control on hardware.
Characteristics
Because it is compiled, low-level, static-typed and does not require a garbage collector, it can be considered a system programming language and it is suitable for operating system and video games programming.
These characteristics make it share a niche with C and C++ for hardware-close programming languages.
The advantages of Rust over these languages is that it has an easier memory allocation system, it is easier to learn and use and, unlike C, it supports object-oriented programming.
The disadvantages of Rust over C and C++ (and also other popular programming languages):
- It may also be not as supported by devices than C or C++, taking into account that C is probably the most portable programming language and there is a compiler available for virtually all processors.
- It is an emerging programming language it does not have yet a community and environment as strong as the other decades-old programming languages.
- It offers abstraction features that may not be desirable in some specific scenarios where the developer is looking for an assembly code-programming language total correspondence.
History
It was created by software developer Graydon Hoare while he was working at Mozilla, and it was officially released in 2015. The Rust trademark is owned by the Rust Foundation.
License
It is free and open-source (FOSS) under an MIT and Apache 2.0 dual-license.
You can find a discussion on Rust dual-license on this external link.
Concepts
borrowing
lifetime
borrow checker
Type system
Rust uses generics as type system.
Memory management
The memory management model in Rust is based on ownership.
Rust Libraries
This section is about libraries for rust.
Game dev libraries
Rust game development libraries featured on this post:
- Bevy
- ggez
- wgpy
Rust Development Tools
Featured tools for Rust:
- Build tool + Package manager
- Linker
- Software framework
Build tool + Package Manager
Build tool + package manager applications:
- Cargo
Cargo
Cargo is the official Rust package manager and build tool.
Linter
Rust linter featured on this post:
- Clippy
Code Formatter
Code formatters featured on this post:
- Rustfmt
Software Framework
- Tauri
Tauri
Tauri is a software framework to create cross-platform applications.
Tauri uses Rust for the back-end programming.
Learning Rust
Web Courses
The following Rust courses are featured on this post:
- Google’s “Comprehensive Rust” course
Google’s “Comprehensive Rust” Course
This course expects that you know the basics of programming.
You can find this course on this external link.