In Rust 0.4, traits were added as a means to provide inheritance interfaces were unified with traits and removed as a separate feature. Version 0.2 introduced classes for the first time, and version 0.3 added several features, including destructors and polymorphism through the use of interfaces. The object system style changed considerably within versions 0.2, 0.3, and 0.4 of Rust. Typestates were removed because in practice they were little used, though the same functionality can be achieved by leveraging Rust's move semantics. The typestate concept was not unique to Rust, as it was first introduced in the language NIL. Discrepancies could be discovered at compile time, rather than at runtime, as might be the case with assertions in C or C++ code. The typestate system modeled assertions before and after program statements, through use of a special check statement. Īlong with conventional static typing, before version 0.4, Rust also supported typestates. This is to provide an easy reference point for changes due to the frequent nature of Rust's train release schedule, as well as to provide a window to make limited breaking changes. Every two to three years, a new Rust "edition" is produced. Following 1.0, stable point releases are delivered every six weeks, while features are developed in nightly Rust with daily releases, then tested with beta releases that last six weeks. Rust 1.0, the first stable release, was released on May 15, 2015. The first numbered pre-alpha release of the Rust compiler occurred in January 2012. Named rustc, it successfully compiled itself in 2011. The same year, work shifted from the initial compiler (written in OCaml) to an LLVM-based self-hosting compiler written in Rust. Mozilla began sponsoring the project in 2009 and announced it in 2010. Hoare has stated that the project was possibly named after rust fungi and that the name is also a subsequence of "robust". The language grew out of a personal project begun in 2006 by Mozilla employee Graydon Hoare. Rust has been voted the "most loved programming language" in the Stack Overflow Developer Survey every year since 2016, and was used by 7% of the respondents in 2021. It has gained increasing use and investment in industry, by companies including Amazon, Discord, Dropbox, Facebook ( Meta), Google ( Alphabet), and Microsoft. Rust's major influences include C++, OCaml, Haskell, and Erlang. The designers refined the language while writing the Servo experimental browser engine and the Rust compiler. Rust has been called a systems programming language and in addition to high-level features such as functional programming it also offers mechanisms for low-level memory management.įirst appearing in 2010, Rust was designed by Graydon Hoare at Mozilla Research, with contributions from Dave Herman, Brendan Eich, and others. Rust achieves memory safety without garbage collection, and reference counting is optional. Rust is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. Rust is a multi-paradigm, general-purpose programming language designed for performance and safety, especially safe concurrency. Windows, Linux, macOS, FreeBSD, NetBSD, Illumos, Haiku, Android, Redox, iOS, Fuchsia Affine, inferred, nominal, static, strongĪMD64, i686, arm, AArch64, armv7, mips, mips64, mipsel, mips64el, powerpc, powerpc64, powerpc64le, risc-v, s390x, WebAssembly