Rust is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without needing a garbage collector, making it a useful language for a number of use cases other languages aren't good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems.
Before you request a review
Review the guidelines created for the The Rust Libz Blitz as well as the API guidelines used. These are aimed at producing high-quality, uniform libraries and having a consistent ecosystem is important.
Consider running these tools before submission to automatically address some common issues:
- Rustfmt is a tool for automatically formatting Rust code to the community-accepted style.
- Clippy is a tool for finding common mistakes that may not be compilation errors but are unlikely to be what the programmer intended.
Frequently-mentioned style points.
- Why is it discouraged to accept a reference to a String (&String) or Vec (&Vec) as a function argument?
Rust is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without needing a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems.
It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead, while eliminating all data races. Rust also aims to achieve ‘zero-cost abstractions’ even though some of these abstractions feel like those of a high-level language. Even then, Rust still allows precise control like a low-level language would.
After a long period of iteration and experimentation, Rust 1.0 shipped on May 15th, 2015. This release is the official beginning of the Rust language's commitment to stability, and as such it offers a firm foundation for building applications and libraries. From this point forward, breaking changes are largely out of scope (some minor caveats apply, such as compiler bugs).
What does it do?
Rust supports a mixture of programming styles: imperative procedural, concurrent actor, object-oriented and functional. It supports generic programming and meta-programming, in both static and dynamic styles. Rust is also capable of creating bindings for C foreign function interfaces.
The language design pursues the following goals:
- Compile-time error detection and prevention.
- Clarity and precision of expression.
- Run-time efficiency.
- Safe concurrency.
You can view what the standard library has to offer, and search through it, here. The scope of the standard library will continue to grow in future versions of the language.
To get started with the language, start with the book, finally open up the standard library documentation.