![]() | |
Paradigms | |
---|---|
Developer | Rust Project |
First appeared | May 15, 2015 |
Stable release | 1.80.1[1] ![]() |
Typing discipline | |
Implementation language | OCaml (2006–2011) Rust (2012–present) |
Platform | Cross-platform[note 1] |
OS | Cross-platform[note 2] |
License | MIT, Apache 2.0[note 3] |
Filename extensions | .rs , .rlib |
Website | www |
Influenced by | |
Influenced | |
Rust is a general-purpose programming language emphasizing performance, type safety, and concurrency. It enforces memory safety, meaning that all references point to valid memory, without a garbage collector. To simultaneously enforce memory safety and prevent data races, its "borrow checker" tracks the object lifetime of all references in a program during compiling.
Rust was influenced by ideas from functional programming, including immutability, higher-order functions, and algebraic data types. It is popular for systems programming.[13][14][15] Rust does not enforce a programming paradigm, but supports object-oriented programming via structs, enums, traits, and methods, and supports functional programming via immutability, pure functions, higher order functions, and pattern matching.
Software developer Graydon Hoare created Rust as a personal project while working at Mozilla Research in 2006. Mozilla officially sponsored the project in 2009. In the years following the first stable release in May 2015, Rust was adopted by companies including Amazon, Discord, Dropbox, Google (Alphabet), Meta, and Microsoft. In December 2022, it became the first language other than C and assembly to be supported in the development of the Linux kernel.
Rust has been noted for its rapid adoption, and has been studied in programming language theory research.
legal
was invoked but never defined (see the help page).Those of you familiar with the Elm style may recognize that the updated --explain messages draw heavy inspiration from the Elm approach.
influences
was invoked but never defined (see the help page).They are inspired by ... ownership types and borrowed pointers in the Rust programming language.
Project Verona
was invoked but never defined (see the help page).Jaloyan
was invoked but never defined (see the help page).Lattner
was invoked but never defined (see the help page).
Cite error: There are <ref group=note>
tags on this page, but the references will not show without a {{reflist|group=note}}
template (see the help page).